【问题标题】:how to reduce amount of time to open ruby executable that contains a GUI?如何减少打开包含 GUI 的 ruby​​ 可执行文件的时间?
【发布时间】:2015-08-29 02:06:06
【问题描述】:

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

这是我的 fxruby.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

这是我的 green_shoes.rb:

require 'green_shoes'

Shoes.app do
    button "OK!"
    button "Are you sure?"
end

有什么策略可以让它们运行得更快吗?或者可能是另一个更快的 ruby​​ GUI 选项?谢谢!!

【问题讨论】:

  • 我不太确定您要做什么。绿鞋程序最多应该在几秒钟内启动,我会说你的转换器似乎有问题。 Shoes 有打包程序来打包应用程序(到 exe 等),因此你可以尝试 Shoes 3.2,Shoes 4 还没有很好的 windows 打包(但你可以打包到 .jar 文件)

标签: ruby user-interface shoes ocra fxruby


【解决方案1】:

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

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

实际上,Ruby 也有 QT 和 GTK 绑定,但据我了解,它们大多已经过时(遗憾的是)。否则 QT 可能是在 Ruby 中进行原生跨平台 GUI 开发的方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-03
    • 2014-11-10
    • 1970-01-01
    • 2011-10-22
    • 2012-12-31
    • 2016-01-29
    相关资源
    最近更新 更多