Как уменьшить количество времени, чтобы открыть исполняемый файл ruby, который содержит графический интерфейс?

Я использовал ocra для преобразования моих файлов ruby ​​в исполняемый файл окна, но я заметил, что это займет очень много времени, если я использую графический интерфейс ruby, такой как fxruby или green_shoes. Есть ли способ уменьшить время, необходимое для запуска программы? Мой текущий файл 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, который будет быстрее? благодарю вас!!

1 ответ

Время загрузки, вероятно, в основном зависит от того, сколько времени требуется виртуальной машине Java для вашего приложения. Я не слишком хорошо осведомлен о различных методах оптимизации для Java VM, но поиск в Интернете должен принести вам некоторые подходы. Однако будет предельный предел того, насколько быстро вы можете запустить свое приложение.

Другой подход заключается в использовании node-webkit (nw.js) в качестве внешнего интерфейса, который, по сути, упаковывает браузер webkit, а затем вы можете либо скомпилировать свой код ruby ​​с опалом (если вы испытываете приключения), либо запустить его в процессе ruby. фон, который создает сервер, к которому будет подключаться интерфейс. Я пробовал это на самом деле в проекте на основе Python, и пока что это интересно, однако вы должны знать, что вам также необходимо изучить материал о HTML/CSS и, в конечном итоге, JS, если вы хотите, чтобы ваше приложение стало действительно крутым, так что это может не произойти. будь тем, кем хочешь быть. Я просто чувствую, что в целом подход nw.js немного быстрее для GUI, чем подход Java.

На самом деле были также привязки QT и GTK для Ruby, но, насколько я понимаю, они в основном устарели (к сожалению). В противном случае QT может стать способом разработки родного кроссплатформенного графического интерфейса в Ruby.

Другие вопросы по тегам