hsimyu's diary

ゲームなどをします。

9/13-17 入力を減らす

9/13 (金)

仕事はまあまあ。落ち着いてきたので新しいことも始めた。

三連休帰るかどうか悩んでいたが、妻と相談の結果帰らないことに。帰ると確かに土曜日の手助けはできるのだが、それ以外の部分で慌ただしくなりそうということで。

ごはん

朝: オールブラン

昼: まぜそば

夜: イオンの惣菜

9/14 (土)

娘が実家に預けられる日当日なのでそわそわ。結果として、おおむね良い子で過ごしてくれたらしい。良かった……。二週間で結構慣れてくれたのかな。

Hollow Knight の真 ED を観た。今度こそ本当にクリア。達成率 94%。 アビス方向に全然行ってなかったのでかなり未探索の箇所があった。20 + 8h で終わり。 これで DXM できるぞ!

ダンジョン飯 8 巻

チェンジリング笑ってしまう。チルチャックさん! 一行が割と横道にそれた話をする裏で、1F あたりでシリアスやってるのが面白い。 まだ結構長く続きそうだし、のんびりやってほしい。

ごはん

朝: 水

昼: 冷凍担々麺

夜: チーズ月見バーガー

9/15 (日)

特に何もしない。CEDEC 動画観たりまちカドまぞく観たり C++ の設計と進化読んだり。あとは進撃の巨人読んだ。

先週くらいから食事量を減らしているのだが、まあ夜くらいは……と思ってラーメンを食べに行ったら、完全に気持ち悪くなって横になってた。夜メシは漬物とかにするか。

みかん

C++のinline関数は最適化をかけるとどのようにアセンブルされるのか

https://qiita.com/aoshimash/items/0313f1b4e6a5748a2e74

Func1とFunc2は同じものとして扱われていた。 -O2でインライン展開を有効にした状態で-flto(リンク時最適化)を有効にすると、ヘッダと実装が分かれていたとしても、インライン化はできる。すべての関数がインライン化されるわけではないはず。

なるほど、LTO はこういうところに効いてくるのか!

ごはん

昼: 牛乳

夜: ラーメン

9/16 (月)

CEDEC 動画を見ていた。これで観たかったものはだいたい観終えたかな。

それ以外はまちカドまぞくを流しながら本を読んでいたり、妻と娘の帰宅に向けて掃除を始めたり。

みかん

ごはん

昼: 水、しば漬け

夜: なす、豆腐、マクドナルド

9/17 (火)

仕事はあんまり何もしていない。今週から動かし始めたテストが早速エラーを見つけてくれてウキウキ。なかなかやるじゃないか。

妻と娘は明日帰ってくることに決定。掃除の残りなどをした。

みかんのニキビが広がっている。

最近食事を控えめにしているのは、入力量が少なくても実はそんなに満足度下がらないんじゃない?と思ったからです。

みかん

ごはん

朝: オールブラン

昼: 豚肉

夜: おにぎり、漬物

C++: ゼロコスト例外ハンドリング

https://llvm.org/docs/ExceptionHandling.html

Itanium の ABI における例外ハンドリングは、不確かな例外ハンドリングコードをインライン化することなしに、outlying データを例外テーブルの形で提供する手法を定義している。これは、アプリケーションのメインアルゴリズムに影響せず、したがって通常のアプリケーション実行に対して「ゼロコスト」である。

https://zakkas783-blog-blog.tumblr.com/post/3870295160/c-の例外ハンドリングとパフォーマンス

setjmp/longjmp による例外ハンドリングでは、例外ハンドラのあるフレームに入る時に現在のコンテキストが保存される。そして、例外が発生した際にスタックフレームを追うことなく即座にコンテキストが復元される。この方法は、非常に高速な例外の伝搬が行える一方で、例外が発生しない場合でも例外ハンドラを利用するために大きなオーバーヘッドが発生する。

ゼロコスト例外ハンドリングの場合、種々の例外の範囲を表す静的なテーブルが生成される。例外ハンドラがあるフレームに入った際に、動的なコードは必要とされない。例外が発生すると、生成されたテーブルから要求された例外ハンドラーを探し、スタックをバックトレースする。この方法では例外発生時の性能が非常に悪いが、例外が発生しない場合には全くオーバーヘッドがかからない。