サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
u-no.hatenadiary.org
Javaと聞くと、遅くね?と拒否反応を示す人は多いはず。就職して以降、弊社の戦略的事情から(本当だろうか)もっぱらプログラムはJavaで書いています。Javaは適当に遊んでいた程度でしたが、だいぶ慣れてきました。チューニング的な意味で。最近、大規模データや構造化データを扱うことが増えたので、ちょっと気を抜くと動かなくなります。同じインターフェースで5回くらい実装し直すのはざらです。 さて、Javaはインタプリタだから遅いと思われがちですが、本当でしょうか。最近の経験を鑑みるに、JIT最適化はかなりがんばっているという印象を受けます。経験的に(CPU実験の)、もっとも効く最適化の一つはインライン展開(とそれに伴う定数伝搬など)なんですが、そちらは実はだいぶがんばっているように思います。遅い原因は、そこではなくてメモリ馬鹿食いから来るキャッシュミスと、それに伴う速度低下が原因の用に思います。J
FPGAで将棋プログラムを作ってみるブログ:古きよき時代の囲碁プログラムの終焉 - livedoor Blog(ブログ) そろそろ言及しておかないとな。 私はゲーム研究者でも何でもない、ただの大学院生ですが、この辺のネタに興味がないわけではない。最近は、特にコンピュータ囲碁でモンテカルロ囲碁というのが既存の min-max search にとって変わられようとしているそうだ。ただこのモンテカルロ囲碁って言い方、汎用じゃないのでモンテカルロゲーム木探索とか何か別の呼び名はないのだろうか。 まず、肝心のモンテカルロ○○。私が理解している範囲では、これは局面の評価値計算の手法で、対局者がある確率分布で確率的に手を打つと仮定して、つまりある局面から始めて、以降の局面の遷移列が確率的に得られるとしたとき、最終的なゲームのスコア(石差とか、あるいは勝ち負け)の期待値を、その局面の評価値にするという手法
http://www.podval.org/~sds/ocaml-sucks.html なんか、Lisp 使いには OCamler のいう OCaml の良さは一生伝わらない気がしています。なんというか、それは「このカレー辛くておいしい!」と甘党の人に勧めても意味ないということです。 それはさておき、私も他に言及されている方々と同じで、ほとんどがある種の些細な問題な気はします。なんというか、○○ができない、というよりは○○がめんどいという内容の気がします。言い方をかえると、OCaml では○○ができない、という内容ではなくて、今のライブラリには○○が実装されていないという内容が多くみえる(コンパイラやデバッガに関してはさておき)。でも、software development という点では、共同開発には使いたくないというのはもっとも。私でも誰かと共同開発なら間違いなく Java を選びます
スクリプト言語から C のライブラリを使うためのラッパを作るなら SWIG です。使ってみると、これが思っている以上に強力でエレガントにラップしてくれることに気づきます。 SWIG のすごさというのは、各言語の最大公約数の部分をうまく共通化させてくれるところだ。たとえば、現代的な言語はどれもクラス、文字列型、配列、例外機構といったものを備えているわけだから、それらを自動で相互に変換して欲しい。class は別言語のクラスに、std::vector は配列に、std::string は文字列に自動で読み替えて欲しい。もちろん、それ以外に表現方法があるのはわかるんだけど、他言語とのインターフェースという限られた用途に最適性を求めるのは不毛だろう。 http://python.matrix.jp/tips/cpp_extension.html いろんな人が言及しているので、二番三番煎じなんですが
このページを最初にブックマークしてみませんか?
『u-no.hatenadiary.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く