はじめまして、gumiの津村です。 現在は解析系の仕事をしたり、ツールを作ったりしています。 今回の話は高速化についてです。 結構長めの文章です。 目次 実行速度の高速化 Python/C API ctypes Pyrex Cython SWIG その他 纏め 実行速度の高速化 高速化といっても色々ありますが、今回は実行速度の高速化についてです。 弊社ではPythonを全面的に採用していますが、そもそもLLは実行速度が遅い言語です。特にC言語のようなコンパイラ系の言語と比べると非常に遅いです。 それでもLL系の言語がここまで使われるようになったのは、開発効率が良いからです。 もはや常識ですね。 しかし、それでも特定の領域ではどうしてもPythonのようなLL系言語では厳しい部分も出てきます。 アルゴリズムを変更しても、ハードウエアを変えても、無理な物は無理です。 速度に問題がある場合の最適
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー tweeqlを使うとTwitterにSQLのような構文でアクセスできる。Pythonとeasy_installさえインストールされていれば,導入は簡単。 sudo easy_install tweeql のようにすればOK。 tweeqlはPythonのライブラリだけど,コマンドラインからも簡単に試せる。 動かすのに設定ファイルが必要なので,以下のようにして設定ファイルのひな形をダウンロードしておく。 wget http://github.com/marcua/tweeql/raw/master/settings.py.template -O settings.py その後,コマンドラ
JUGEMテーマ:健康 たった5分のトレーニングで視力が一気に回復する方法がテレビ番組で紹介されました。 お笑い芸人光浦がまずは視力を計ると 右0.6 左0.8 そこで5分の視力トレーニングを行って再び視力を計ると なんと右1.5 左も1.5 驚きの結果となりました。 トレーニング方法もいたって簡単です。 視力トレーニング方法は以下の通り ?目を強くつぶり10秒上を見る ?目を強くつぶり下・右・左と10秒繰り返す ?指の先端を目で追う運動 (顔は動かさない) 自分で行う場合 ∞の字を3回指で描き目で追う ?指を奥から手前へ3回動かして目を追う このトレーニング方法、メジャーリーグでも行っているとか。 そして上のトレーニング方法に脳のトレーニングを行うことで100%視力があがるというから驚きだ。 その方法もいたって簡単「見えると思って」?? それでは番組で紹介されたトレーニング方法は以下より
IPv4アドレスの例としては、上記IPv4アドレスを使えばいいわけですが、世の中を見ると結構好き勝手なIPv4アドレスを例として利用している事例が多いというのが現状ではないかと思います。 私が初めてこれを知ったのは、kazuさんのブログの「あどけない話:例として推奨されているドメイン名とIPアドレス」を読んだときです。 それまでは、知らなかったので、適当なIPv4アドレスを使ったサンプルを書いてしまってました。 申し訳ありません。。。 余談ですが、kazuさんは、私が「技術的に一生追いつけそうにない」と思っている凄い人の一人です。 こういった凄い方々を色々と見ていると、私が自分のサイト名に「Geek」という在らぬ単語を入れてしまったことを悔いていたりします。 以前から書き続けていますが、私は「ギーク」なんかじゃないです。サイト名は気のせいです。すみません。。。 というか、そういう「凄い」と
第12回G*ワークショップにて行った講演のスライドと発表原稿 はじめに 11/9にJGGUG様主催にて第12回G*ワークショップが開催されました。そこで、「Model On Grails - DCIアーキテクチャへの道すじ-」と題しまして、DCIアーキテクチャについて講演させて頂きましたので、その際のスライドと発表原稿を公開します。 スライドはこちら アジェンダは以下の通りです。 導入 先駆者たちが遺したもの オブジェクト指向の死角 DCIアーキテクチャ サンプル 導入 今回のテーマは「DCIアーキテクチャ」です。日本では、2010年の1月にJames O. Coplien氏が来日して講演したことで知られるようになりました。Googleグループのメーリングリストを見る限りは未だ黎明期にありますが、何か大きく化けそうな気配を漂わせていると言えるのではないでしょうか。 このDCIアーキテクチャ
AppEngineは、アクセスがあったときにアプリケーションを起動し、しばらくアクセスが無ければアプリケーションを終了させ、また次のリクエストで再起動するという仕組みを導入しています。 そのため、アプリケーションを起動(spin-up)する時間がとても重要になってきます。このspin-upの時間はpython(webapp)で60cpu_ms以下。(cpu_msはcpuが使う仮想的な時間ですがmsと同じ感じで捉えてもらってもとりあえずは大丈夫です)JavaのServletだと600cpu_msくらいです。PythonでもDjangoような大きなフレームワークだと1000cpu_msくらい(アプリによる)かかりますが、許容範囲内。JavaだとSlim3で1300cpu_ms、Springだと早くて7000cpu_msという感じで、Slim3がギリギリ許容範囲内でしょうか。ほんとうは、1000
プロジェクト型の事業はふつう、初期には費用を使って、成功するとリターンを得るというキャッシュフロー構造をしている。言いかえれば、最初に投資が必要で、完了時に回収する仕組みである。受注型プロジェクトでも、最初は人件費や外部コストがかかり、成功裏の完了すると支払を得るわけだから、時間的な構造は同じである(会計的には「投資」扱いにならないとか、一部の「前払金」があり得るなど、細かな差違はある)。 いうまでもなく、多くのプロジェクトは失敗のリスクをともなっている。すなわち、初期の投資を回収できずに終わる可能性が(大小はともあれ)存在する。いま、プロジェクトの初期投資額をC、成功時の収入をSとし、かつ途中で中断失敗するリスク確率をrとすると、プロジェクトの生み出す価値の期待値は、非常に単純化して言うならば (1 - r)S - C (1) で表されることになる。これがプラスでなければ、そ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く