![【特集】 約30年でGPUはどのぐらい速くなったの?歴史を振り返りつつぜ~んぶ計算してみた](https://cdn-ak-scissors.b.st-hatena.com/image/square/d1d18909856137c564ad872ad483c04ed3a6f88c/height=288;version=1;width=512/https%3A%2F%2Fpc.watch.impress.co.jp%2Fimg%2Fpcw%2Flist%2F1613%2F315%2Fs.jpg)
NTT データ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 今回はソートについて記します。 0. はじめに データ構造とアルゴリズムを学ぶと一番最初に「線形探索」や「ソート」が出て来ます。これらのテーマは応用情報技術者試験などでも頻出のテーマであり、アルゴリズムの Hello World とも呼ぶべきものです。 特にソートは、 計算量の改善 ($O(n^2)$ から $O(n\log{n})$ へ) 分割統治法 ヒープ、バケットなどのデータ構造 乱択アルゴリズムの思想 といった様々なアルゴリズム技法を学ぶことができるため、大学の授業でも、アルゴリズム関連の入門書籍でも、何種類ものソートアルゴリズムが詳細に解説される傾向にあります。本記事でも、様々なソートアルゴリズムを一通り解説してみました。 しかしながら様々な種類のソートを勉強するのもよいが、「ソートの使い方」や
Node.js Performance 改善ガイド Memory の場合 メモリリークかどうかを特定する メモリリークではない場合 CPU の場合 どこの処理に時間がかかっているのかを確認する v8 simple profiler flame graph を取得する File の場合 大きなサイズのファイルをどうしても扱う時 Network の場合 keepalive を on にする その他: 全体的にパフォーマンスを改善するためにやること JIT が効いているかを確認する clusterが使えないか検討する C++ addons vs JavaScript libraries まとめ 参考資料 Node.js Performance 改善ガイド この記事は Node.js 2 Advent Calender の 5日目の記事です。 qiita.com Node.js のパフォーマンスに
なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ
Percona Database Performance Blogの翻訳。既に運用を始めたデータベースで、インデックスが正しく使われているか、無駄や不足がないかを確認する方法のまとめ記事。クエリをひとつひとつ確認するのではなく、統計情報を元に判断する分かりやすい方法。 このブログ記事では、MySQLインデックスに手入れする基本的なステップについて見ていこうと思います。 データベースは、インデックス次第でハイパフォーマンスにも、役立たずで遅くて大変にもなりうることはご存知でしょう。インデックスは、時々手入れをする価値がある非常に重要なものです。それでは、何をチェックすればよいのでしょうか?順不同ですが、確認すべき点を挙げてみます。 1. 使われていないインデックス sysスキーマで、使われていないインデックスをとても簡単に見つけられます。 schema_unused_indexes ビューを
現在、Twitter は1秒間あたり3,000枚の画像(約200GB)を作成し持続している。 しかしながら、2015年に Twitter はこれら画像ファイル等メディアファイルの保存方法を改善したために、600万ドルを節約することができた。 以前からそうだったわけではない。Twitter は2012年には主にテキストベースだった。 これはまるで、ホグワーツ魔法魔術学校であのかっこいい動く絵が壁にかかってないようなものだ。 2016年の今では Twitter はメディアを駆使した方向へと移行している。 Twitter は、プレビュー、マルチフォト、gif、vine、埋め込みビデオなどで写真をサポートできる新たなメディア・プラットフォームの開発を経て変化したのだ。 Twitter社のソフトウェア開発エンジニアであるHenna Kermani氏が、Mobile @Scale Londonでの興味
この投稿は、私が去年OSCONで行ったプレゼンテーションを基に作成しています。プレゼンよりは簡潔に編集し直し、プレゼン後にいただいたいくつかのフィードバックに応える形で記事を書いています。 Go言語に関してよく言われるのは、Go言語はサーバでうまく機能し、静的なバイナリや強力な並行処理、高いパフォーマンスを見せくれるということです。 この投稿では、その後半の2つの項目に関して焦点を当てます。プログラマとってGo言語とそのランタイムは、スケーラブルなネットワークサーバをスレッド管理やブロッキングI/Oを気にせずに書くのにどんなに有効かを説明していきます。 効率的なプログラミング言語に関しての議論 技術的な話に入る前に、Go言語をターゲットにしたマーケットを説明する2つの議論に関してお話したいと思います。 ムーアの法則 画像は以下より引用; 2005年5月にHerb Sutter氏が書いたDr
[CEDEC 2015]クラウド版「ドラゴンクエストX」はこうして作られた。「世界初! 3DSでMMORPGのクラウド開発」セッションレポート ライター:大陸新秩序 2015年8月26日から28日まで,パシフィコ横浜でCEDEC 2015が開催されている。本稿では,開催初日に行われたセッション「世界初! 3DSでMMORPGのクラウド開発 〜ドラゴンクエストX クラウド版開発実例紹介〜」の内容をレポートしよう。 本セッションでは,スクウェア・エニックス 第6ビジネスディビジョン プログラマー 黒川進一氏と,Ubitas ビジネス・デベロップメント シニアディレクター 春日伸弥氏が,MMORPG「ドラゴンクエストX」のクラウド版において,クラウドサーバーとゲームがどのように連携しているのか,PCゲームをクラウド化するにあたってどのような作業が発生したのかなど,開発工程やコスト,問題点や解決策
ブラウザエンジン先端観測会での、Constellationさんの話を聴いて、CSSセレクターマッチングのコストには複数のレベルがあることを強く意識するようになりました。セレクターマッチングにかかるコストを下げたい、という場合には、どのレベルで何を高速化しようとしているのかを意識しないと話がかみあいません。Constellationさんの話を私なりに整理して考えた、セレクターマッチングのコストを下げるアプローチは次の3つです。 ①セレクターを減らす ②マッチするかどうかの判定回数を減らす ③1回1回の判定処理を速くする これは、ブラウザーのセレクターマッチングの処理の各部分に対応しています。 CSSの各セレクターについて(①)、 対象となるDOM要素すべてに対して、 セレクターがマッチするかしないか決まるまで、親要素・兄要素を辿りながら(②)、 要素がセレクターにマッチする・しないの判定(③
[What Every C Programmer Should Know About Undefined Behavior #1/3 の翻訳です。] LLVMでコンパイルしたコードは、最適化を有効にしているとたまにSIGTRAPシグナルを生成するのはなぜなのか、と聞かれることがある。いろいろ調べたあと、(X86での話だが) Clangは "ud2" インストラクションを生成していたことがわかった。"ud2" は__builtin_trap()が生成するインストラクションと同じものだ。[訳注: #UD例外を発生させる命令。ソフトウェアが#UD例外をハンドルできているかテストするために使われる。つまり、ソースコードが未定義な振る舞いを使っていたから、LLVMはud2インストラクションを生成したのであって、LLVMのバグではない、ということ] こういう問題は幾つかあって、すべて、Cの未定義な振る
本日、GoogleがCloud SQL(MySQLのレンタルみたいなの)の無料版を発表しました。500MB/6ヶ月でGoogle App Engineなどから無料で使えるようです。 さて、それはいいとして最近弊社なども含め、今時の環境って本気だすと複雑化してますよね。OSCで発表された前佛さんのMunin資料を31pと2つ戻って29pを見比べてみてくださいw Muninではじめる実践★リソース監視 -俺のサーバがこんなに重いはずがない、を乗り切るために- from Masahito Zembutsu こんなの絶対おかしいよ!! NoSQLや非同期処理など、様々な新しい技術にチャレンジしたいと思っていても、どこから手を付けよう、、みたいなことってありますよね。Cassandraがいいのかな、Redisがいいのかな?みたいにはてブの着いた記事があれば読んでみるんだけど、インストールとか面倒そう
コンピュータにちょっと詳しい人なら一発で解るポインタの利点 前提知識 前提知識として、ショートカットファイル(シンボリックリンク)、ファイル、ファイルパス、ハードディスクの役割について知っていれば、たぶん一発で解ります。 ポインタ変数をコンピュータで喩えると… ポインタ変数をコンピュータで喩えると、ポインタ変数、変数、アドレス、メモリ空間の関係は、それぞれ ポインタ変数=ショートカットファイル 変数=ファイル アドレス=ファイルパス メモリ空間=ハードディスク に対応します。察しの良い人ならこれだけでポインタの利点が分かると思いますが、以下で詳しく説明します。 ショートカットファイルの利点、ポインタ変数の利点 たとえば、C:\documentsに巨大なサイズのファイルがあったとします。あなたは 「このファイルにデスクトップ上からでもアクセスしたい」 と思いました。でもコピーすると時間かかる
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く