タグ

programmingとbenchmarkに関するastk_fのブックマーク (12)

  • なぜリフレクションは遅いのか | POSTD

    .NETのリフレクションが遅い のは周知の事実ですが、なぜなのでしょうか。この投稿では、リフレクションの 実装 を見ながらなぜ遅いのかを解明します。 CRL型システム設計目標 リフレクションが速くない理由の1つとして、そもそも 高いパフォーマンス が設計上の目標にされてはいないことを挙げることができます。 型システム概要 – 設計の目標および非目標 では次のように記載されています。 目標 コード(リフレクションではない)の実行時に必要となる情報へのアクセスが高速なこと。 コード生成のためにコンパイル時に必要となる情報へのアクセスが容易であること。 ガベージコレクタ/スタックウォーカが必要な情報へアクセスする時に、ロックを解除したりメモリを割り当てたりしなくてよいこと。 一度にロードされる型の数が最小限であること。 指定された型をロードする時、ロードする数が最小限であること。 型システムのデ

    なぜリフレクションは遅いのか | POSTD
  • Kotlinの隠れたコストについてのベンチマーク | POSTD

    @BladeCoder が書いた Kotlinの隠れたコストの調査 という一連のブログ記事は、ある Kotlin 構文にどのように隠れたコストがあるのかを説明しました。 実際の隠れたコストは、普通、不可視オブジェクトのインスタンス化やプリミティブ値のボクシング/アンボクシングに起因します。これらのコストは、Kotlinコンパイラがどのように上記の構文をJVMのバイトコードに変換するのかを理解していない開発者には特に見えづらいのです。 しかし、何らかの数字を示さずに隠れたコストの話をするだけでは、実際にどのくらいコストのことを心配すべきなのかという疑問が湧いてきます。コードベースのいたるところで、これらのコストを考慮すべきでしょうか?あるKotlin構文は単に全面的に禁止されるべきでしょうか?あるいは、最も範囲の狭い内部ループの中でだけ考慮されるべきでしょうか? さらに挑発的な言い方をすれば

    Kotlinの隠れたコストについてのベンチマーク | POSTD
  • C#でTypeをキーにしたDictionaryのパフォーマンス比較と最速コードの実装 - Grani Engineering Blog

    CTOの河合(@neuecc)です。今回はパフォーマンス比較もそうなのですが、どちらかというと、それを具体的な例にして、マイクロベンチマークの測り方の説明をしたいと思っています。その具体的な例、題材なのですが、特に動的コード生成においては、Typeをキーにして生成したデリゲートをキャッシュすることがよくあります。その場合に最速なのはジェネリッククラスを一つ作って、そこに貯めることで public static class Cache<T> { public static Func<T> cache; } 最速に取り出すことが出来ます。これはEqualityComparer<T>.Defaultなどでも使われている、覚えておきたいC#テクニックの一つです。とはいえ、常に必ずしもTを元にして取り出せるわけではなく、Typeをキーにした辞書を作って、そこから取り出すケースも多いでしょう。 具体的

    C#でTypeをキーにしたDictionaryのパフォーマンス比較と最速コードの実装 - Grani Engineering Blog
  • 竹内関数 - Wikipedia

    竹内関数(たけうちかんすう)は、プログラミング言語処理系のベンチマークなどに使われる、再帰的に定義された関数である。 概要[編集] 再帰的に定義される、3個の引数 x, y, z をとる次のような関数である。 特に変わる所は無いがLisp版[1]も参照のこと。定義からわかるように処理を次々にたらい回しにしていくことから、たらいまわし関数[2]、たらい関数 (Tarai function) とも呼ばれる(後述のマッカーシー版との混同を避けるためこの名で呼ばれることのほうが多いが、こちらの定義のほうがオリジナルである。マッカーシー版を特にTak関数として区別する場合もある)。電電公社研究員(当時)の竹内郁雄が、1974年の夏前の頃、後述するような特性のある関数をあれこれ考えていた、ある日の午前に思いついたものである[3]。竹内関数と命名したのは野崎昭弘である[4]。 特性として、他のよくベンチ

  • WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD

    Webアプリにリアルタイムの双方向通信が必要な場合、WebSocketを選ぶのは自然なことだと思います。では、どのツールでWebSocketサーバを構築すべきでしょうか。パフォーマンスは重要ですが、開発のプロセスも見過ごしてはなりません。パフォーマンスを基準にするだけでなく、開発のしやすさも考慮に入れるべきでしょう。今回の大合戦では、Clojure、C++、Elixir、Go、NodeJS、Rubyのそれぞれの言語によって慣用的な手法で実装されたシンプルなWebSocketサーバを比較したいと思います。 テスト内容 サーバに実装するのは、 echo と broadcast の2つのメッセージのみを扱う非常に単純なプロトコルです。echoは送信クライアントに返され、ブロードキャストは全ての接続クライアントに送信されます。そしてブロードキャストが完了すると、結果メッセージが送信者に返されます。

    WebSocket大合戦:Clojure、C++、Elixir、Go、NodeJS、Ruby | POSTD
  • http://spheresofa.net/blog/?p=757

    astk_f
    astk_f 2013/05/17
    TypeScript「Firefoxさん空気読んでください」
  • TechEmpower Framework Benchmarks

    Performance comparison of a wide spectrum of web application frameworks and platforms using community-contributed test implementations.

    TechEmpower Framework Benchmarks
  • Camera Previewのbyte[] YUV420SPをBitmapのint[] ARGBにする話 - ReDo

    [GN, VGA Preview YUV420SP->ARGB Java only] Q. Javaは遅いのですか? A. お前がそう思うんならそうだろう お前ん中ではな Androidでは撮影(takePicture)とは別にPreview画像を連続して取得することができます。 昔はPreviewの取得と取得したデータの処理が順次動作していたのですが、API Lv.8(FroyoなのでこのAPIの追加も十分昔なのですけどね)からsetPreviewCallbackWithBufferと「キューイングされたバッファに対して順次プレビューを取得しろ」というものが増えたので、バッファがある限りパラで動作できる様になりました。 Single CoreでJava heapが16M/24M時代には色々苦しかったのですが、Quad Coreとか48M/64Mとかの世界になってくると、Java層でえいや

    Camera Previewのbyte[] YUV420SPをBitmapのint[] ARGBにする話 - ReDo
  • layoutのinflateパフォーマンス測定 - Hacking My Way 〜 itogのhack日記

    昨日このイベントに参加して、話題に上がったことがちょうど気になってたところだったのでlayoutをinflateする際のshapeによるパフォーマンスへの影響を計測してみました。ついでに気になってたincludeの計測もしてみました。 環境はエミュレータ上のAndroid4.0.3です。 shapeのパフォーマンス backgroundで何も指定しないTextViewとshapeを指定したTextViewおよびlayer-listを指定したTextViewをそれぞれLinearLayoutに10個配置した場合と100個配置したlayoutをinflateするのにかかる時間を計測します。 shepe,layer-list shapeとlayer-list gradation.xml <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:and

    layoutのinflateパフォーマンス測定 - Hacking My Way 〜 itogのhack日記
  • AndroidのSparseArrayは本当に速いのか測定してみた

    前回のエントリで紹介したBundleSaverを作成する際に、SparseArrayというクラスの存在を知りました。 SparseArrayは、Android向けにつくられたパフォーマンスに優れたHashMap代用とのことで、その使い方と気になる性能について調べてみました。 実際に測定することでメリットやデメリットがわかったので、ご紹介します。 SparseArrayってなぁに? どう使うの? HashMap と SparseArray の性能比較 考察 まとめ 参考(計測に利用したクラス) 1. SparseArrayってなぁに? SparseArrayは、キーにintを利用することを前提としたHashMapだと考えると分かりやすいかと思います。 (Integerではなく、intです。) また、SparseArrayでは、値にObject型を格納できますが、値がint, booleanの

    AndroidのSparseArrayは本当に速いのか測定してみた
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • wonderfl build flash online

    wonderflは、サイト上でFlashをつくることのできるサービス。 通常Flashをつくるためには、Flash IDEやFlex、FlashDevelop等といったツールを使って、コードを書き、コンパイルする必要がありますが、wonderflでは、サイトにあるフォームにActionscript3のコードを書けば、サーバサイドでコンパイルを行えます。 つまり、ブラウザさえあれば、Flashをつくれます。コンパイル結果はサイト上に表示され、作成されたFlash(swf)はページ上に自動的に表示されるので、完成したFlashをリアルタイムに見ながらコードを書くことができます。 ※APIとして、はてな OpenIDを使用してネットにさえつながれば、誰もがFlashクリエイターになれます。世界中のFlashクリエイターがユーザーになるwonderflは、 文字通り、世界のFlash図鑑となってい

    wonderfl build flash online
  • 1