RailsClub 2017:リチャード・シュニーマンとのインタビュー

こんにちは



RailsClub 2017カンファレンス(すべてが9月23日に行われます)に向けて準備を進めており、スピーカーと生活とプログラミングについて話し合っています。 今日、 Mikhail Morgunovは、HerokuのRichard Schneeman 、Ruby Hero 2016、トップ50 Railsコントリビューターと話をしました。



画像



なぜレポートでRubyのスレッドについて話したいのですか?



多くの場合、スレッドは複雑であるため使用しません。 はい、Rubyの中には、グローバル変数やグローバルVMロック(GVL)など、物事を複雑にする多くの要因があります。 開発者は、GVLによってストリームの有用性が低下するため、ストリームの使用は難しいと誤解しています。 そのため、Ruby内では使用できません。 私はRubyでスレッドを使用するための引数があることを示しようとしますが、これには適切なシナリオがあります。 はい、スレッドの使用は難しく、Rubyだけでなく、他のプログラミング言語でも同様です。 私はCでマルチスレッドを使用した経験がありますが、さらに悪いことです! Rubyはスレッドを扱うのに最も簡単な言語ではありませんが、確かに最も複雑な言語ではありません。 アプリケーションを開発すると、スレッドが生産性を大幅に向上させることがわかります。 たとえば、バックグラウンドタスク。 Puma Worker Killerというライブラリがあります。 たとえば、4時間ごとにサイクルを再開するために使用できます。 スレッドがなければ、これは実装できないため、ライブラリの基盤としてスレッドを使用しました。 それが私がそのような報告をすることにした理由です。



現在、どこでストリームを使用していますか?



現時点では、私はサポートしています:



- プーマワーカーキラー

- スレッドと呼ばれるライブラリ(スレッドプールを介した実装)

- 同時Ruby



スレッドを使用すると、並行してチェックを実行でき、同時に実行されます。 その結果、6倍高速になりました。



同時にいくつのスレッドを実行でき、どのくらいのメモリが必要ですか?



これは、世界で最も難しい質問の1つです! :)私はかつて大学の教授にこれについて尋ねましたが、彼女は私に良い答えを与えることができませんでした。 一般に、CPUと同じ数のスレッドを実行できます。 プロセッサ上にあるコアの数を調べて、同じ数のスレッドを実行します。 ストリームを追加するたびに、使用可能なメモリの量が減ります。 別の方法は、個別のプロセスを使用することです。 ただし、スレッドよりもはるかに多くのメモリを使用します。 Rubyは単独で大量のメモリを使用するため、プロセスのみを使用すると大量のメモリが必要になります。 スレッドを使用する必要がある最大の理由は、メモリの適切な使用です。 2番目の理由はI / Oです。 I / Oがどこかで使用される場合、ここでストリームを使用する必要があります。 つまり、CPUの数=スレッドの数。 開始するのに適切な量は5です。それ以降、システムに応じてスレッドの数を増減できます。 特定の数を言うのは本当に難しいです。



どのようにしてプログラマーになりましたか?



私は大学でRubyの勉強を始めました。 当時、ウェブサイトとウェブアプリケーションは非常に人気があり、誰もがそれらについて話していました。 ビル・ゲイツの成功について聞いて、次のように考えました。 私は彼のようになりたい! 10億ドル欲しい!」 コンピューターサイエンス学部で勉強しているルームメイトにウェブサイトの作り方を尋ねました。 彼は、当時人気のあるWebサイトの1つがRuby on Railsを使用していたと言いました。 「Ruby on Rails for Dummies」という本を買いました。 大学では、最終的に冷蔵庫を作るためにエンジニアとして勉強しましたが、とても退屈でした。 その結果、私は自由時間をすべてウェブサイトの開発とセルフトレーニングに費やしました。 とても気に入りました! 開発者会議に参加し始め、ユーザーグループに参加しました。 さて、この頃、私はこれを専門的に行い始めました。



初心者にどんなアドバイスをしますか?



あなたに100万ドルをもたらすものを見つけてみてください! :)時々人々は私に尋ねます:「プログラマになる方法、これを学ぶ方法?」。 私は彼らに一歩後退し、「自分は最終的に何を作りたいですか?」と自問します。 想像できますか? それは何でも構いませんが、頭の中に明確な考えを持つことは非常に重要です。 プログラミングの最も難しい部分は技術的な側面ではありません。 最も難しいのは、興味を失い、仕事に満足しないことです。 あなたにインスピレーションを与えるものを見つけて、止まらないでください!



趣味は何ですか? 暇なときに何をしますか?



手で作業します。私は大工仕事が大好きです。 しかし、今、私は暇な時間はありません。なぜなら、私は奉行に参加し、それが100%かかるからです。 そして、12月には新しい趣味があります。2番目の子供が生まれます。 本当に楽しみです! 子どもたちはフルタイムの仕事なので、仕事から2か月の休憩をとり、家族と関わり、他のすべてのクラスを趣味と見なします。



hype.codesで元のインタビューを英語で読むことができます。



RailsClubでのRichardの講演はThreads Are n't Evilと呼ばれ、残りの質問はすべて直接聞いてください!



登録 、残り時間はほとんどありません!



All Articles