2011年2月28日月曜日

object_poolのdestroy()がなんだか遅い

object_poolでメモリを確保したshared_ptrをvectorに大量に追加し、clear()で解放しようとした際、フリーズしたかと思うほど時間がかかったので検証してみた。

どうやら、destroy()の中で使われているordered_free()がなんかのタイミングでオーバーヘッドになってるっぽい。

以下、無駄に長い検証用コード。

2011年2月27日日曜日

shared_ptrとintrusive_ptrをメモリプールをつかって高速化してみる

引き続き、C++のメモリ動的確保の話。
shared_ptrをどうしても高速で扱えるようになりたかったので、メモリプールを組み合わせて試してみた。

まんまこちらのサイトを参考にさせてもらった。

shared_ptrとintrusive_ptrの実装方法とかパフォーマンスとか

最近、C++のメモリの動的確保や管理の方法についていろいろ調べまわっていたので、わかったことをメモしておく。

まずは、スマートポインタについて。

スマートポインタとは、登録したオブジェクトがどこからも参照されなくなったさい、自動でdeleteを呼んでくれる便利クラス。ガベージコレクションの実装された言語ばかりさわってた自分にとって、これはすごくありがたい。

shared_ptrやauto_ptr、intrusive_ptr等が存在するけど、今回はshared_ptrとintrusive_ptrの使い方とパフォーマンスを比較してみた。

2011年2月26日土曜日

bloggerでSyntaxHighlighter

手始めに記事上のコードを見やすくするために、SyntaxHighlighterを導入してみる。

いろいろやり方はあるみたいだけど、今回はこちらの方の記事を参考にさせてもらった。
使用したい言語を追加しつつ、headタグ内に以下のコードをペースト

<!--start SyntaxHighlighter--> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script> 
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shAutoloader.js' type='text/javascript'></script> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/> 
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/> 
<script type='text/javascript'> 
  window.onload = function() {
  SyntaxHighlighter.autoloader(
      "js jscript javascript    http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js"
     ,"bash shell               http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js"
     ,"css                      http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js"
     ,"html xml xhtml           http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js"
     ,"cpp c                    http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js"
     ,"java                     http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js"
     ,"actionscript3 as3        http://alexgorbatchev.com/pub/sh/current/scripts/shBrushAS3.js"
     ,"php                      http://alexgorbatchev.com/pub/sh/current/scripts/hBrushPhp.js"
  );
  SyntaxHighlighter.all();
};
</script> 
<!--end SyntaxHighlighter-->

これで準備完了。あとは、投稿画面のHTMLの編集で、コードを以下のようにpreタグで囲ってやる。
brush:のあとのhogeに言語に対応した名称を入れてやればいい。
<pre class="brush:hoge">
コードを記述...
</pre>

あと、htmlの記述にこちらの変換ツールを使用させてもらった。便利。

jsをアップロードしておきたいんだけど、どこにおけばいいんだろ?

2011年2月25日金曜日

このブログについて

プログラミングの勉強、メモ用にブログを使ってみることにした。

基本的にopenframeworksやcinder、processingのようなメディアアート系のフレームワークについての個人的メモを置く場所となる予定。

てきとーなこと書いて、だれかに優しく正してもらう、そんなブログにしたい。