2015-08-29 8 views
0

Я использую ocra для преобразования моих рубиновых файлов в исполняемый файл окна, но я замечаю, что это занимает очень много времени, если я использую Ruby GUI, например 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 

Любые стратегии, чтобы получить их, чтобы работать быстрее? Или, может быть, еще один вариант рубинового GUI, который будет быстрее? Спасибо!!

+0

Я не совсем уверен, что вы пытаетесь сделать. Программа зеленых ботинок должна начинаться через несколько секунд, но, похоже, проблема с вашим конвертером я бы сказал. Обувь имеет упаковщиков для упаковки приложений (в exe и т. Д.), Поэтому вы можете попробовать Shoes 3.2, у Shoes 4 пока нет хорошей упаковки окон (но вы можете упаковать файлы .jar) – PragTob

ответ

0

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

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

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