Has anyone tried having Discourse on the truffleruby?
Does it make sense to look in this direction?
Interesting. Why did they decide to fork not contribute I wonder?
@merefield Truffleruby is an implementation of Ruby for GraalVM by Oracle guys. Good performance and interoperability with other languages on GraalVM.
It’s not a fork.
I have some experience with Rails on Truffleruby and want to check Discourse next week.
Some additional information - Running Rack and Rails Faster with TruffleRuby - Speaker Deck
Sounds fascinating. Would you expect to be able to run the existing Discourse codebase without significant changes? What kind of changes might be needed?
Short answer: No, it currently doesn’t work on TruffleRuby.
@gerhard Thanks for the link, It will be easier for me to understand existing issues.
The current blocker is mini_racer, see https://github.com/oracle/truffleruby/issues/1827
That said, at least all gems install on TruffleRuby, we test that in CI (for some slightly older Discourse).
この問題は5日前に修正されました。
残念ながら、ディスコースではなくマストドンが最初に TruffleRuby で動作することになります ![]()
@volanar そうですね。今は本業が忙しくて、この質問に戻る時間がありません。
@eregon が参加しました。Truffle に関してブロッカーがあるとは認識していません。昨年、Mini Racer の修正をマージしました。
Brandon は 1 年前に Discourse を実行しました。
https://twitter.com/brandonfish/status/1486755128577253376
https://twitter.com/brandonfish/status/1519726230936993792
私が記憶している問題の 1 つは、一部の gem が Hash のスレッドセーフ性に依存していることでした。これには一般的な解決策がありますが、TruffleRuby ではまだマージ/統合されていません。一方で、Hash を並行して使用することが正しいケースは非常にまれであり、多くの場合、見つけにくい方法で並行処理のバグを隠蔽することになります。したがって、それに依存している gem を修正する方が良いかもしれませんが、それには時間がかかります。
パフォーマンスをベンチマークする必要があります。ベンチマークが意味のある/代表的なものになるためには、マルチスレッドでベンチマークする必要があります。これには A way to mark C extensions as thread-safe, so they can be executed in parallel · Issue #2136 · truffleruby/truffleruby · GitHub が必要です。
それがすぐに解決されることを願っています ![]()
TruffleRubyを使用することで、Discourseのパフォーマンス指標(TTFB、全体的なパフォーマンスなど)はどの程度改善されると思いますか?
ブランドンはこのサーバーにいますか?
@Matthias_Schuster すばやい検索で、Meta のこちらが見つかりました。