Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
関数とかのベンチマークをサポートしてくれるライブラリ. C++11 機能(より正確には -std=c++0x)を使っているので新しめの C++ コンパイラでないと動きません. 使い方は至って簡単で, ユニットテストのように, ベンチマークで計測したい関数を適当に benchmark::State を引数に取るようにして, マクロで呼び出しの指示を与えます. #include "benchmark/benchmark.h" static void BM_LongTest(benchmark::State& state) { double tracker = 0.0; while (state.KeepRunning()) for (int i = 0; i < state.range_x(); ++i) tracker += i; CHECK(tracker != 0.0); } BENCH
C++ containers that save memory and time cpp-btree - C++ B-tree - Google Project Hosting Googleが、B-tree実装のSTLコンテナー(map, set, multimap, multiset)を発表した。 多くのSTLの実装では、map, set, multimap, multisetは、Red-Black treeで実装されている。Googleの発表によれば、B-tree実装のコンテナーは、赤黒木実装に比べて、速度が上がり、しかもメモリ消費量も削減できるとしている。 紹介まで。 B木は一つのノードに複数の要素を格納する。これにより、ポインターなどのオーバーヘッドを低減でき、メモリ消費量の削減につながる。また、複数の要素を一括してノードに詰め込むため、速度向上もあるのかもしれないが、そのへんはよ
例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, string* out) { out->clear(); out->append(dir); out->push_back('/'); out->append(base); }なんてのを書くんじゃないかと思います。この関数で問題になるのは const char* を渡すと不要な string object が一度できることで、敬虔な C++ 屋さんだと、 void JoinFilePathStr(const string& dir, const char* base,
いつも利用し続けているデリヘル店はどうも割引制度らしくシステムがあるらしく、長年サービスを受けてきてこれがあることに気が付きませんでした。詳しく情報を見てみるとどうも風俗を利用する際の割引額は割と高めらしく、これなら相当負担を軽減させられるに違いないと確信しました。早速その風俗のシステムを最大限に利用した上で女の子と遊び続けてみたけど、今までと比べると明らかに負担額は大きく異なっていたので割と長く遊べたんです。軽視し続けてきたけど割引制度を利用すると今まで以上に手厚いサービスを受けることが出来た訳で、有効活用出来なかった自分が情けなくなりました。これだけの恩恵を受けられるのなら今後も利用し続ける価値はあるなって思えたし、同時に性欲も今まで以上に解消させていけたのでほぼ満足です。割引制度を利用する為には特定の条件をクリアしなきゃいけない訳ですが、幸いにもデリヘル店側が定めている内容はさほど難
【GoogleTest Assertions まとめ】 ↓のWikiから、Assertionを和約(適当)してまとめてみる。 http://code.google.com/p/googletest/wiki/GoogleTestPrimer http://code.google.com/p/googletest/wiki/GoogleTestAdvancedGuide 注)勢いで書いたので、自分に都合の良い所だけ抽出、意訳しています。 あと、実はバージョン1.2.0の時に訳したもののコピペです。 基本 Fatal assertionNonfatal assertionVerifiesASSERT_TRUE(condition);EXPECT_TRUE(condition);condition is trueASSERT_FALSE(condition);EXPECT_FALSE(condi
[GoogleTest1.3.0を使ってみた] Google C++ Testing Framework http://code.google.com/p/googletest/ Googleのテストフレームワーク「GoogleTest」に去年の年末くらいから興味を持ち始めて使ってみた。 かなりいけてるのに日本語解説が少ないので、やった事をいろいろと書き出す。 なにができるのか・マルチプラットフォーム対応 Windows(VC)、Cygwin(gcc)、Linux、MacOS、WindowsCE、Symbian・・・ ・テストコードの自動発見 RUN_ALL_TESTS() で勝手にTEST(Hoge, hoge)と書いたコードを探索して実行してくれる (もちろん任意のテストだけ実行する、しないのオプションもあり) ・豊富なAssertion 失敗(ASSERT)と警告(EXPECT)
Google が Google Code でオープンソースとして公開しているソフトウェアの解説シリーズ(前回のエントリ)の第 4 回です。今回は Performance tools について紹介します。この Performance tools は、実際に Google 社内で広く使われており、特に、C++ でテンプレートを使用するマルチスレッドアプリケーションを開発する際に役立ちます。Linux 環境を主に対象としています。 Performance tools とは? C や C++ でプログラムの書いたことのある多くの人は、「プログラムを高速化したいけれど、どこが一番のボトルネックか分からない」とか、「メモリリークがあるようだけれど、どこで発生しているか分からない」といった問題で苦しめられた経験が一度くらいはあると思います。もちろん、こうした問題の解決策として、アドホックにプログラムをチ
Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な
Google Code Googleは13日(米国時間)、Windows、Mac OS X、Linuxのクロスプラットフォームビルドを実現するためのツールキットSoftware Construction Toolkitを発表した。SConsをベースにPythonを使って開発されたツールキットで、次の特徴がある。 アプリケーションのビルドを担当するツールキット テスト、ドキュメント、Pytonモジュールによる拡張が可能 マルチプロセッサを想定したパラレルビルドに対応 distccおよびIncredibuildを経由した分散ビルドに対応 Visual Studio向けのプロジェクトファイルを生成可能 アプリケーションを複数のプラットフォームに対応させるのはかなり煩雑な作業だ。さらに並列ビルド対応や分散ビルド対応を実施するとなると、ビルドを実現させるだけで多くの時間が必要となる。従来のUNIX系
google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト
Googleが、Webブラウザ上でネイティブバイナリコードを実行する「Native Client」を公開した。 Native Client http://code.google.com/p/nativeclient/ Google Earth,Quakeなどがすでに動いているようだ。 これはすごい!ブラウザ上でX86バイナリを動かす「Native Client」 http://www.moongift.jp/2008/12/native_client/ サンドボックスで安全性確保、オーバーヘッド5% ブラウザでx86バイナリ実行、グーグルが新技術 http://www.atmarkit.co.jp/news/200812/09/nacl.html あと、サンプルのlife.ccにSDL_surfaceと書いてあるのでSDLの描画まわりが既に動いているのだろうから、今後、たくさんのアプリがN
Googleのロギングライブラリgoogle-glogを使ってみる 2008-10-15 (Wed) 15:23 Google OSS “google glog”で探せないgoogle-glogを軽く使ってみました。Googleからオープンソースで公開されたC++向けのロギングライブラリです。以下のエントリが参考になります。 C++ のプログラムのデバッグを楽にする方法 google-gflags 1.0と、google-glog 0.1をダウンロードしてインストールします。今回はgoogle-gflagsを使用する場合についてのみ記述します。また、glogのマニュアルに一通り目を通してから読まれると良いかと思います。 まずはとにかく動かしてみます。 #include int main(int argc, char **argv) { google::InitGoogleLogging(a
前回の続きです. コードは飽きないうちに読め. これまでのあらすじ: プロパティアクセスを速くしたいから JIT をしようぜ. コンパイラ概観 V8 のコンパイラは JavaScript の AST を機械語に変換する. (AST はパーサがつくる.) AST のツリー構造は, Node クラスのサブクラス一族で構成されている (ast.h) コンパイラは関数の AST である FunctionLiteral オブジェクトをうけとって Code オブジェクトを生成する. AST とコンパイラは(またしても) Visitor パターンでつながる. (Visitor 好きは Strongtalk からの伝統らしい. Strongtalk VM のコンパイラも同じようなことをしている. 20 世紀の残り香が...) AST 側は Vistor のインターフェイスを提供する: //ast.h cl
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く