로드 시간에 Ruby 2.0.0이 큰 변화를 가져 왔습니다. c- 확장을 통해 해석 된 루비 코드 데이터를 캐싱하여로드 시간을 늘릴 수 있는지 궁금합니다. 그 아이디어는 pickaxe section "Embedding a Ruby Interpreter"을 읽는 동안 나에게 찾아왔다. 다음은 캐싱 의사 코드가 추가 된 스 니펫입니다.로드 시간을 단축하기 위해 해석 된 루비 코드 데이터를 c 확장으로 마샬링 할 수 있습니까?
#include "ruby.h"
main() {
/* ... our own application stuff ... */
ruby_init();
ruby_script("embedded");
/* HERE IS THE PSEUDOCODE FOR CACHING */
if (ruby_file_previously_loaded_and_cached())
load_marshalled_ruby_data();
else
rb_load_file("start.rb");
cache_all_the_ruby_data();
end
while (1) {
if (need_to_do_ruby) {
ruby_run();
}
/* ... run our app stuff */
}
}
이렇게 할 수 있나요?
여기에 설명 된 캐싱 방법을 찾지 못했습니다 : https://github.com/ruby/ruby/blob/trunk/README.EXT. 검색 계속 ... – btd