如何减少打开包含GUI的ruby可执行文件的时间?

时间:2015-08-29 02:06:06

标签: ruby user-interface shoes ocra fxruby

我一直在使用ocra将我的ruby文件转换为窗口可执行文件,但我注意到如果我使用像fxruby或green_shoes这样的ruby GUI需要很长时间。有没有办法减少程序弹出所需的时间?我当前的fxruby和green_shoes文件非常简单,但编译的exe文件运行大约需要一分钟。

这是我的fxruby.rb文件:

/* make the UL wrap around the LIs */
ul {
    overflow: hidden;
    width: 100%; /* adjust to suit your design */
}

/* breathing room for the link text */
a {
    padding-left: 1em; /* again, adjust as needed. decimals like 1.3em are ok too */
}

这是我的green_shoes.rb:

require 'fox16'

include Fox 

theApp = FXApp.new

theMainWindow = FXMainWindow.new(theApp, "Hello")
theButton = FXButton.new(theMainWindow, "Hello, world!")
theButton.connect(SEL_COMMAND) do |sender, selector, data|
    exit
end
theApp.create

theMainWindow.show

theApp.run

任何使这些运行得更快的策略?或者可能更快的另一个ruby GUI选项?谢谢!!

1 个答案:

答案 0 :(得分:0)

加载时间可能主要来自Java VM需要为您的应用程序启动的时间。我不太了解Java VM的各种优化方法,但网络搜索应该为您提供一些方法。但是,对应用程序启动的速度有一个最终限制。

另一种方法是使用node-webkit(nw.js)作为基本包装webkit浏览器的前端,然后你可以用opal编译你的ruby代码(如果你有冒险精神)或者让它启动ruby在后台创建一个前端将连接到的服务器的进程。我实际上是在一个基于python的项目中尝试这一点,到目前为止它很有趣,但是你应该知道你还需要学习关于HTML / CSS和最终JS的东西,如果你想让你的应用程序变得非常酷,那么这可能不会成为你想成为的人。我只是觉得通常nw.js方法对于GUI的东西比Java方法快一点。

实际上还有针对Ruby的QT和GTK绑定,但根据我的理解,它们大多已经过时(遗憾)。否则,QT可能是在Ruby中进行本机跨平台GUI开发的方法。