Как уменьшить количество времени, чтобы открыть исполняемый файл 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.