つれづれ日記 2023年8月

予定

毎日


2023年8月27日 (日曜日)

21:13:23 # Life 今月読んだ本の読書メモ。

2023年8月20日 (日曜日)

05:52:51 # Life CPUのキャッシュサイズとキャッシュラインサイズ。CPUごとに微妙に違う、最近のIntelCPUだとだいたい全部64バイトっぽいんだけどカーネルがむしろ知っているべきであり、その情報を読んでlibcが教えてくれるべき値のようだ。 sysconfで得られる情報に_SC_LEVEL1_DCACHE_SIZE_SC_LEVEL1_DCACHE_LINESIZE、というのがあるみたい。これをつかえばよいのかな。

2023年8月12日 (土曜日)

11:40:49 # Life RustのベンチマークツールCriterionを試してみた。 cargo bench#[bench]については標準版はnightlyっぽいので仕方なく外部Crateを。 criterion。 なんか標準の書き方に比べるとちょっとめんどくさい。 だけどHTMLを生成してくれて立派な感じである。あと二回目の実行したときにRegressionがあったとか教えてくれる。何も変えていないのに二度目に走らせたらRegressionがあるとはめんどくさいなぁとおもうけどまぁよい。 実行するときにcargo benchとする必要があるのかな。どこまでが標準に入っていないのかよくわかっていない。

2023年8月5日 (土曜日)

09:23:10 # Life C++の文字列定数について。なんか結構不思議な挙動をするのに気づいた。 constexpr char buf1[]はなんとわざわざ文字列をスタックにコピーしてくれるらしい。そういう挙動を期待していなかったのでちょっとおどろいた。 staticつけたら期待した定数的な動きをしてくれたのでまぁそれでよいんだが。constexprで生成した文字列のコピーはスタックに存在して変更可能、ということなんだと思うけど コンパイラの挙動を見る限りではアドレスはあってそれを書き換えられるけどなんかその値を参照していないように見える。

  	  constexpr char kBuf[] = "in .rodata";
	  func() {
  	    constexpr char buf1[] = "copied to stack";
  	    static constexpr char buf2[] = "in .rodata";
	  }
	

2023年8月1日 (火曜日)

09:19:50 # Life 8月だ。


Junichi Uekawa