考え方とパフォーマンスに関するyamadarのブックマーク (3)
-
Ruby1.8.5、1.8.6、1.8.7のリリースマネージャを務め、現在は株式会社マネーフォワードでフルタイムのRubyコミッター職として働く卜部昌平︵うらべ・しょうへい/@shyouhei︶さんは、deoptimizationと呼ばれるアプローチを用いてRubyの高速化に取り組んでいます。 本稿ではその足跡から、いかなる思想のもとでデザインや実装を行っているかを、卜部さん本人が解説します。 Deoptimizationの着想に至るまで デザインとは、やらないことを決めること ﹁最適化が間違っていたら、戻す﹂をどう実装するか? インストラクションを消し、跡地をnopで埋める ﹁メソッド呼び出しが省略可能であること﹂を判定するために 省略可能な呼び出され方を増やす 大き過ぎる問題ではなく、実現できる規模の問題に取り組む Deoptimizationの着想に至るまで 言語を高速化するときに、
-
2013年10月8日11時0分byライブドアニュース編集部 ざっくり言うと 上司が部下に行ってはいけない3つの習慣が存在するのだという1.部下の自信を蝕む 2. 部下を褒めない 3. 重要な情報を部下と共有しない3つの習慣を部下に行うと、部下の態度は悪くなり、生産性はダウンするという 上司やチームリーダーがメンバーに及ぼす影響は大きい。﹁励まされている﹂﹁支えられている﹂と感じると、従業員のパフォーマンスが改善されるという米アイオワ大学の調査からみてもわかるように、上に立つ人間の責任は大きい。良い影響を与えたいのは当然のことだが、一方で、悪い影響を及ぼすことだけは絶対に避けたいーーOpenForumの記事﹁悪い上司がやっている3つの危機的なミス(原題:The 3 Deadly Sins Of Bad Bosses)﹂では、上司が絶対に回避すべき3つの習慣を指摘している。 組織やチ
-
なぜ﹁速い﹂のか、について JSX 開発者の立場から。 たとえば、シューティングゲームで一番重たい処理は何か。言うまでもなく衝突判定。多数の弾や敵機の衝突判定を毎フレームごとに行う必要があり、この演算が重たい。 JSX に同梱されている web/example/shooting.jsx には衝突判定のコードが複数あるが、一番重たいのは Bullet#update 関数で、その処理は以下のようになっている*1。 for (var rockKey in st.rocks) { var rock = st.rocks[rockKey]; if (this.detectCollision(rock)) { if (rock.hp == 0) return false; inDisplay = false; if (--rock.hp == 0) { st.score = Math.min(st.s
-
1