この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除
プログラミングをする上で、コメントをきちんと残したり、わかりやすい変数名をつけたりして「読みやすいコード」を目指す作業は重要です。しかし、「読みやすいコード」と「優れたコード」の間には、時として構造上の大きな違いがあるのも事実。そんな「優れたコード」に対するLinuxの開発者リーナス・トーバルズ氏の考え方について、エンジニアのmkirchner氏が説明しています。 mkirchner/linked-list-good-taste: Linus Torvalds' linked list argument for good taste, explained https://github.com/mkirchner/linked-list-good-taste Linus Torvalds: The mind behind Linux | TED Talk https://www.ted.co
ざっくり年収1,000万円のエンジニアが10名いる会社では、年間1億円の技術投資がなされているわけですが(地代家賃、ライセンスフィー、PC代など含めるともっと)、年間1億円を正しく詳細に把握して、投資をコントロールできている会社は少ないと思います。会社が創業期であれば、最低限作らなければならない機能などは分かりやすく見えていたりするのでまだしも、そのプロダクトでしっかりとした収益が成り立ち、上場企業となるようなレベル感のプロダクトに対する技術投資となると、一部の大きなプロジェクトは把握していても、細かな投資ポートフォリオを常に把握することは難しいのではないでしょうか?今回はこの部分に一石を投じてみたいと思います。 技術投資量を見える化する 投資の最適化とは言いますが、最適化というのは「To Be」の話ですので、まずは「As Is」を知らなければ話になりません。その、まず「As Is」を知る
すごいタイミングですごい本が出たもんだ。 本日はKubernetes Advent Calendar 2020 その1 向けのエントリー。 本当はCF for k8sの記事を書くつもりだったのだけど、先週盛り上がりまくったDockershimのDeprecated話の後ですごーく良い本が出てきたので、これは紹介せねばということで急遽内容を変更。 jaco.udcp.info CF for k8sの話も途中まで書いちゃっているのでまた日を改めて公開する。 あの神資料が本になったよ ということで今日の話題はこちら。 イラストでわかるDockerとKubernetes Software Design plus 作者:徳永 航平発売日: 2020/12/05メディア: Kindle版 今ではDockerやKubernetesに関する本もだいぶ出揃い、使い方を学ぶのには困らなくなってきた。それに、基
WebAssembly night #10 イベント: https://emsn.connpass.com/event/192221/ 自作したWasmリンカ: https://github.com/kateinoigakukun/chibi-link
米Googleは12月8日(現地時間)、2015年にGitHubで静かに立ち上げたOSプロジェクト「Fuchsia」(赤紫、という意味)のオープンソースモデルを拡張し、一般開発者からの貢献を歓迎すると発表した。 Fuchsiaは、Android OSと異なりLinuxベースではなく、Google独自のリアルタイムOS向けカーネル「Zircon(旧Magenta)」をベースにした新しいOS。2019年にはひっそりと開発者向けWebサイト「Fuchsia.dev」が公開されたが、公式ブログでの正式発表はこれが初めてだ。今回の発表でGoogleはFuchsiaを「汎用OSを構築するための長期プロジェクト」と説明した。 「Fuchsiaは、セキュリティ、更新可能性、パフォーマンスを優先するよう設計されている。(中略)このOSで、持続性のある安全な製品と体験を簡単に作成できるようにする」という。 一
Monolith by Rene Aigner Some patterns are just about the code. If your code looks like this, and you need it to do that, here’s what to do. You’d do well to study such patterns, as they give you a deep repertoire of solutions ready to apply and make your code better every time you hit their context. Then there are other patterns that are less about the code and more about how the code is being wri
前書き 「AWS & Game Advent Calendar 2020」二日目の記事になります。 近年日本では、アズールレーン、荒野行動、原神など中国制のゲームが多く進出されています。 最近では、「原神1ヶ月間251億円を稼いだ」や「王者栄耀のDAUが1億を超えた」などニュースにもなっています。 私は中国出身のため、この1年の仕事中でも、関連の内容が聞かれたことは何回かありました。今回のAdvent Calendarをきっかけに、王者栄耀や荒野行動をはじめ、典型的な中華ゲームのアーキテクチャと日本のゲームの違いについて、説明したいと思います。 最後、AWS&Gameのカレンダーですが、ゲーム自体はAWSで動いていることとイコールになりません。実際この記事で触れたゲームの中、荒野行動のグローバルとアーチャー伝説だけがAWSの公開事例になります。また、この投稿は、個人の意見であり、所属する企
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く