タグ

performanceに関するmiya2000のブックマーク (26)

  • memcpy 最適化 - kazuhoのメモ置き場

    バイト単位でコピーするアホなコードの方が、勝手にベクトル化される分、gcc 内蔵のヤツより最大3倍高速なんだってwww memcpy() compiled with vectorizing compilers All current compilers for linux should support SSE2 auto-vectorization with #include <string.h> void *(memcpy)(void *restrict b, const void *restrict a, size_t n){ char *s1 = b; const char *s2 = a; for(; 0<n; --n)*s1++ = *s2++; return b; }(中略) x86-64 gcc memcpy() (中略) Linking in a user-compiled

    memcpy 最適化 - kazuhoのメモ置き場
  • http://www.habtm.com/articles/2006/06/08/optimizing-prototype-js

  • https://support.microsoft.com/ja-jp/help/261000

    すべて Microsoft 製品 Microsoft 365 Office Windows Surface Xbox セール サポート ソフトウェア Windows アプリ OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Azure Microsoft Dynamics 365 Microsoft 365 Microsoft Industry データ プラットフォーム Power Platform 法人向けを購入する Developer & IT .NET Visual Studio

  • Access Labo #32 $付き関数のメリットとは? | T'sWare

    結論 $なしの関数に比べて、$付きの関数を使った方が高速である。ただし、同じ$付き関数を使った場合でも、代入先が文字列型でない場合には、データ型変換の分、処理時間がかかるので、$付き関数を使った場合の返り値の代入先は、文字列型変数とすべきである。また、$なし関数を使う場合は処理時間がかかるが、その返り値をバリアント型に代入するとさらに時間がかかる。 VBAにはたくさんの関数がありますが、どんな関数があってどんなことができるかを知っておくことは、プログラミングする上で非常に重要です。まとまった処理を簡単にしてくれる関数を知らなかったばかりに、独自の長いコードを書いてしまったということもあるでしょう。それは独自の関数を作るための労力だけでなく、実際に動かした際のパフォーマンス面でもムダを発生させることになってしまいます。 しかし、関数の名前や用途を知っていても、さらに注意しなければならないこと

  • BeInteractive! [AS3は一体どれだけ速いのか?]

  • 2007-10-13 - 技術日記@kiwanami JavaScriptで b-tree

    導入 ある日突然、JavaScript上で高速に追加・削除が行えて爆速で最小値を検索できる入れ物が欲しくなった。 普通(JavaとかFORTRANとか)ならここで素直に b-tree の実装に入るのだけども、JavaScriptは例によって変態言語なので、実は面倒なことせずにArrayに普通に入れて、素直にソートとか線形探索したほうが速いのかもしれないという疑問を持った。 しかも「最近全然技術日記してない」という突込みが入り、ついカッとなってベンチマークをとってみた。*1 調べ方 以下の3つの入れ物を実装。適当な実装を探してみたが、あまりいいものが無かったので車輪の再実装。 BTree 素直にb-treeを実装。速度よりは読み書きしやすさ優先。スペック通りなら、追加・削除、値の探索が高速。 SortedList 配列を常にソートしておいてb-searchで値探索、spliceで追加・削除。

    2007-10-13 - 技術日記@kiwanami JavaScriptで b-tree
    miya2000
    miya2000 2007/10/15
    テストページがキレイ
  • escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()

    ウェブを扱うライブラリやプログラムで必ずと言って良いほど見かけるものに、escapeHTML という関数があります。 "&" 等、特別な意味を持つ文字を、表示等のために実体参照 (&amp;) に変換するお決まりの関数なんですが、実装には色々とバリエーションがあるものです。 1. String#replace メソッドを繰り返す (MochiKit 等) function escapeHTML(str) { return str.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); }このパターンが最も多く見受けられます。Ruby でも同様に gsub を繰り返す方式を見かけることがあります (例: RSS::Utils.html_escape)。 2. Str

    escapeHTML の実装 3 パターン (ベンチマーク付き) - (new Hatena).blog()
  • 動的SQLによる数独の超高速解法:CodeZine

    Pinskiさんの記事は、「SQLで数独を解ける」ことを示したという点で評価できます。しかしながら、そのためのコードと実行時間が共に長大であるため、「SQLは面倒で遅い」という誤解を読者に与えかねません。稿で紹介する方法で、誤解が払拭されることを期待します。 第1、2部と第3部の手法を簡単にまとめておきましょう。 第1、2部では、手続き的な記述、つまり、どうすれば数独の解が得られるかの具体的な記述によって数独を解いています。手続き的とは言っても、せっかく宣言型言語であるSQLを使うので、手順の各ステップはなるべく宣言的に記述するように心がけています。 第3部(稿)の方法の質はたった1行のSELECT文です。このSELECT文には「数独の解とはどういうものか」だけが記述してあり、その解を得るための具体的な方法はコンピュータが考えます。ただし、このSELECT文は人間が手で簡単に書けるよ

    miya2000
    miya2000 2007/09/20
    クエリヒント「/*+ ORDERED */」「OPTION (FORCE ORDER)」「CROSS JOIN」
  • "abc".x(2) -> "abcabc" - (new Hatena).blog()

    配列に続いて、文字列の乗算メソッドも実装してみましょう。ただし、全然違うアルゴリズムを用います。 String.prototype.x = function (x) { var base = this, result = ''; while (x) { if (x % 2) result += base; x = Math.floor(x / 2); base += base; } return result; };KaoriYa.net さんの BBS ブラウザ "Chalice" の文字列乗算関数 (AL_string_multiplication in alice.vim) からほぼそのまま拝借しています。 どういう理屈か説明しますと、要はビット演算なんですね。1 回のループで要素を倍のサイズに、なおかつループカウンタを 2 で割っています。このことが言わば左ビットシフトとして機能す

    "abc".x(2) -> "abcabc" - (new Hatena).blog()
    miya2000
    miya2000 2007/09/14
    文字列 繰り返し 連結 倍ずつ処理してループ回数を減らす
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    miya2000
    miya2000 2007/09/12
    「PL/SQLでは暗黙カーソルは実行直後にクローズされるため」これか! しかしストアドならコンパイル時にその辺も最適化されそうなもんだけどどうだろ?
  • オラクルマスターGold&Platinum

    miya2000
    miya2000 2007/09/12
    これか?「1.2回取り出してるので、パフォーマンスがよくない。 2.例外エラーが起こりやすい。」あー2回フェッチしてフェッチできたらException吐くようになってる? なぜ暗示は内部で「カーソル%ROWCOUNT」を見ない?
  • 【初級】新人SEのためのSQLの基礎 第5回 トランザクションとカーソルにまつわる注意点

    1つの処理が2つ以上のSQL文で表される場合にトランザクションを利用する。トランザクションは一連の処理をまとめて「確定」または「取り消し」を行うことができる機能で,これを利用すれば1つのSQL文が失敗した場合,同じ処理の別のSQL文をすべて取り消すことができる。データベース・アプリケーションでは欠かせない機能であるが,RDBMS製品による挙動の違いなどに注意しなければならない。 トランザクションの4つの注意点 トランザクションには開始と終了があり,トランザクション内にはINSERT文(挿入)やDELETE文(削除),UPDATE文(更新)などが含まれる。トランザクション内のデータベースに対する更新処理は,実行されるが確定は行われず,未確定の処理が行われる。一連の処理の確定や取り消しは,トランザクション終了時にまとめて行う(図1[拡大表示]上)。トランザクションの終了は「COMMIT(コミッ

    【初級】新人SEのためのSQLの基礎 第5回 トランザクションとカーソルにまつわる注意点
    miya2000
    miya2000 2007/09/12
    「一般的には暗黙カーソルより明示カーソルの方が良い。暗黙カーソルでは検索データが複数レコードになっているかどうかのチェックのためにフェッチを行うからである。」明示だとフェッチしない?
  • パフォーマンス・チューニング

    C パフォーマンス・チューニング この付録では、アプリケーションのパフォーマンスを改善するために簡単に適用できる方法をいくつか紹介します。これらの方法を使用すると、多くの場合、処理時間を25%以上削減できます。この付録の項目は、次のとおりです。 パフォーマンスを低下させる原因 パフォーマンスの改善方法 ホスト配列の使用 埋込みPL/SQLの使用 SQL文の最適化 索引の使用 行レベル・ロックの利用 不要な解析の排除 不要な再解析の回避 接続プーリングの使用方法 パフォーマンスを低下させる原因 パフォーマンスを低下させる原因の1つは通信オーバーヘッドが高いことです。サーバーでは、SQL文を一度に1つずつ処理する必要があります。つまり、文ごとに個別のコールが発生し、単一のオーバーヘッドが増加します。ネットワーク環境下では、ネットワークを介してSQL文を送信する必要があるため、ネットワークの通信

  • GreasemonkeyスクリプトのGM_xmlhttpRequestとかで取得したhtmlとかxmlをいじる場合はxpathだと遅いことが多いかも - gotin blog

    GM_xmlhttpRequestはresponseXMLを返してくれない。 DOMを作ってくれない、ということ(作ってくれなくていいんだけど)。 xpathするにはDOMを作る処理が必要になる。 DOMParser使うとか、適当なelementのinnerHTMLに突っ込んだりする。 そのときの処理時間がそれなりにかかるので、正規表現とかでひょいひょいパースするほうが早く終わるケースが多いような気がする。 だけど正規表現だと読みにくくてつかれてしまうので、例えばこんな感じの関数でも定義しておけばそれなりに読みやすくなりそうだしそれなりに速いし、ってことになるかなぁ、どうだろう。 function getTags(html, tagName, className){ var cls = ""; if(className){ cls = "[^>]*?class=\"" + classNam

    GreasemonkeyスクリプトのGM_xmlhttpRequestとかで取得したhtmlとかxmlをいじる場合はxpathだと遅いことが多いかも - gotin blog
  • ?D of K

    ?D of K

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • length プロパティのパフォーマンス: Days on the Moon

    「for 文 2.0」(IT戦記) では length プロパティの評価をループの外に出すことにより高速化を図っています。DOM の NodeList オブジェクト (document.getElementsByTagName() などで取得) や HTMLCollection オブジェクト (document.forms などで取得) の length プロパティは「生きている」(オブジェクト取得後の操作が反映される) 、すなわち誤解を恐れずいえば評価のたびに数えなおす必要があるので遅いというのも納得ですが、JavaScript のネイティブオブジェクトである配列の length プロパティはどうなのでしょうか。実際に調べてみました。 以下は 10000 個の span 要素に対する NodeList オブジェクトと配列の length プロパティのパフォーマンスを調べた結果です。数値は

  • ActionScript3 最適化・高速化Tips 簡易まとめ - actionscriptグループ - ConquestArrow.addEventListener( LifeEvent.WORK, this.studyActionScript);

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    ActionScript3 最適化・高速化Tips 簡易まとめ - actionscriptグループ - ConquestArrow.addEventListener( LifeEvent.WORK, this.studyActionScript);
    miya2000
    miya2000 2007/06/22
    ビット演算など
  • ウノウラボ Unoh Labs: MySQL5からのインデックス結合で1テーブル複数インデックスを使う

    komagataです。 Webアプリケーションのパフォーマンスの大半はデータベース、特にインデックスの使われ方にかかっている気がします。 仕事でもMySQLをよく使いますが、MySQLでは1テーブルに付き1インデックスしか使われません。PostgreSQLなどと比べてそのことが気になってMySQLでのパフォーマンスチューニングに全く自信が持てませんでした。 オライリーの実践ハイパフォーマンスMySQLには下記のように書かれています。 実際、UNIONを除き、MySQLでは、1つのクエリを実行するとき、1つのテーブルに付き1つのインデックスしか使用できない。この事実は、繰り返し述べるに値するほど重要である。「MySQLでは、1つのクエリを実行するとき、1つのテーブルにつき1つのインデックスしか使用できないのである。」 また、その制約を考えたクエリの書き方として下記の様に書いてあります。 my

  • DOM API と innerHTML のパフォーマンス比較 - とっくりばー

    404 Blog Not Found:javascript - element.innerHTML はなぜ速く見えるかにて InnerHTMLは速くない。速く見えるだけだ。とあった。Danさんの予測は、DOM APIが遅く見えるのは、DOM Treeを更新していくたびに再描画が走るからではないかというもの。 そうなのかなと思って実験を作ってみました。 複雑なHTMLを文字列として作ってからinnerHTMLに代入するのと、 再描画が一度も走らないよう、あらかじめ複雑なElementを作ってから最後にdocumentにくっつけるようにするの Elementを作ったそばからどんどんdocumentにくっつけていくの で比較しました。↓以下実験。 HTMLタグを生成してinnerHTML DOM APIでElementを生成(最後にbodyに接続) DOM APIでElementを生成(最初にb