ブログ 2016/12/28 小ネタ do-while do-whileステートメントとか使っていますか? あんまり実際に使われているコードを実務で見たことはなく。 使われていないキーワードランキング的にもdoは使われてない方から数えて27位。 もしかしたら使われないどころか存在を忘れてる人すらいるんじゃないかというこの文法。 「使ってる?」とか人に聞いてみたところ、 「初心者の頃にちょっと」「もしかしたら初心者ほど使ってるかも」とかいう回答も得られたり。 確かに、入門書とか(うちのサイト含めて)には書かれてますもんね。書かれてば使うか。… 続きを読む 2016/12/27 小ネタ 並列化 よく目にする話題だと思いますが、ここ10数年くらい、CPUの性能は高クロック動作化ではなく、並列化によって向上しています。 CPU律速になるような計算処理は、ガチガチに最適化するなら並列処理を考える必要が出てきます。 並列化によって高速化しやすい計算の例として、浮動小数点数のデータ列の積和演算を考えてみます。 例えば、以下のようなコードになります。 private static float SingleThreadScalar(float[] x, float[] y) { … 続きを読む 2016/12/26 小ネタ 小さなオブジェクトのスタック割り当て 今回は、C#や.NETの現在ある機能でも、近い将来入りそうな機能でもないんですが、ちょっとした最適化の話。小ネタというか、いつものピックアップRoslynの亜種というか。「Javaでやってるんだし.NETでも」的な要望にし対して、.NETでは事情が変わるよ、というネタ紹介。 小さくて、かつ、短い期間使われないオブジェクトは、たとえ参照型(通常はヒープ上にメモリ確保)であってもスタック上にメモリ確保してはどうかという案があったりします。 CLR/JIT should optimize &q… 続きを読む 2016/12/25 C# 7思い出話 discards 書いた。 変数宣言式 ということで、今日も「小ネタ」休みで「C#7思い出話」の方を書くことにします。 このページのタイトル このページのタイトルはかなり悩んだ… 実質的にはdiscards(_を使った値の破棄)の話なんですけども。 discards単体だと入れる場所に悩み。 discardsを書ける場所はどこかと考えたら、「変数宣言する場所」なんですよね。 で、「将来的には変数宣言式になるはずだし…」とか、 「というかむしろ、先にアイディアがあったのは変数宣言式で、それ… 続きを読む 2016/12/24 小ネタ Concurrent コレクション .NET 4以来、System.Collections.Concurrent以下に、 Concurrentなコレクションがいくつか追加されました。 Concurrent、英単語の意味としては「同時に起こる」という意味の形容詞。 プログラミングにおいては、「複数のプログラムやスレッドから同時にアクセスされる」という意味で使われ、 「並行」とか「同時実行」とか訳されます。 たいてい、「Concurrentなんとか」みたいな名前のものは「同時実行があっても問題が起きない」という意味になります… 続きを読む 新しい投稿へ 過去の投稿へ
2016/12/28 小ネタ do-while do-whileステートメントとか使っていますか? あんまり実際に使われているコードを実務で見たことはなく。 使われていないキーワードランキング的にもdoは使われてない方から数えて27位。 もしかしたら使われないどころか存在を忘れてる人すらいるんじゃないかというこの文法。 「使ってる?」とか人に聞いてみたところ、 「初心者の頃にちょっと」「もしかしたら初心者ほど使ってるかも」とかいう回答も得られたり。 確かに、入門書とか(うちのサイト含めて)には書かれてますもんね。書かれてば使うか。… 続きを読む
2016/12/27 小ネタ 並列化 よく目にする話題だと思いますが、ここ10数年くらい、CPUの性能は高クロック動作化ではなく、並列化によって向上しています。 CPU律速になるような計算処理は、ガチガチに最適化するなら並列処理を考える必要が出てきます。 並列化によって高速化しやすい計算の例として、浮動小数点数のデータ列の積和演算を考えてみます。 例えば、以下のようなコードになります。 private static float SingleThreadScalar(float[] x, float[] y) { … 続きを読む
2016/12/26 小ネタ 小さなオブジェクトのスタック割り当て 今回は、C#や.NETの現在ある機能でも、近い将来入りそうな機能でもないんですが、ちょっとした最適化の話。小ネタというか、いつものピックアップRoslynの亜種というか。「Javaでやってるんだし.NETでも」的な要望にし対して、.NETでは事情が変わるよ、というネタ紹介。 小さくて、かつ、短い期間使われないオブジェクトは、たとえ参照型(通常はヒープ上にメモリ確保)であってもスタック上にメモリ確保してはどうかという案があったりします。 CLR/JIT should optimize &q… 続きを読む
2016/12/25 C# 7思い出話 discards 書いた。 変数宣言式 ということで、今日も「小ネタ」休みで「C#7思い出話」の方を書くことにします。 このページのタイトル このページのタイトルはかなり悩んだ… 実質的にはdiscards(_を使った値の破棄)の話なんですけども。 discards単体だと入れる場所に悩み。 discardsを書ける場所はどこかと考えたら、「変数宣言する場所」なんですよね。 で、「将来的には変数宣言式になるはずだし…」とか、 「というかむしろ、先にアイディアがあったのは変数宣言式で、それ… 続きを読む
2016/12/24 小ネタ Concurrent コレクション .NET 4以来、System.Collections.Concurrent以下に、 Concurrentなコレクションがいくつか追加されました。 Concurrent、英単語の意味としては「同時に起こる」という意味の形容詞。 プログラミングにおいては、「複数のプログラムやスレッドから同時にアクセスされる」という意味で使われ、 「並行」とか「同時実行」とか訳されます。 たいてい、「Concurrentなんとか」みたいな名前のものは「同時実行があっても問題が起きない」という意味になります… 続きを読む