タグ

2015年10月8日のブックマーク (3件)

  • 手続き型のダンジョン生成アルゴリズム | プログラミング | POSTD

    この投稿では、以前に TinyKeepDev が こちら で述べたランダムなダンジョンを生成する技法について説明しようと思います。元の投稿に比べて、もう少し具体的に話を進めるつもりです。まずは、以下に示したアルゴリズムの一般的な動作をご覧ください。 部屋の生成 はじめに、幅と高さを持つ部屋を円の中にランダムに配置しましょう。TKdevのアルゴリズムは、各部屋のサイズを生成するのに正規分布を用いています。これは一般的にとてもいいアイデアです。なぜかと言うと、これによってより多くのパラメータを扱うことができるようになるからです。幅/高さの平均と標準偏差間の異なる比率を選ぶと、通常は見た目の違うダンジョンとなります。 ここで実行すべき関数は getRandomPointInCircle です。 function getRandomPointInCircle(radius) local t = 2

    手続き型のダンジョン生成アルゴリズム | プログラミング | POSTD
    hiroyukim
    hiroyukim 2015/10/08
  • 雑なツイートをしてしまったばかりにrubyを高速化するはめになった俺たちは!

    逆に言うと、Rubyの文字列型の内部実装がropeになれば、freezeしてもしなくても変わらない速度が出るようになって、結局freezeする必要なんてなかったんやーで丸く収まるんじゃないの?と思いました #雑な感想 — Kazuho Oku (@kazuho) October 6, 2015とツイートしたところ、処理系の中の人から @kazuho 文字列を弄る話じゃなくて、文字列の identity の話なので、ちょっと関係ないかなぁ、と — _ko1 (@_ko1) October 6, 2015みたいなツッコミをもらって、うっすみません…ってなってRuby VMのコードを読むことになったわけです。 で、まあ、いくつか気になる点があったので手をつけてしまいました。 1. オブジェクト生成のホットパスの最適化 ホットスポットだとされていたところのコードを読んでると、オブジェクト生成の際に

  • InstrumentsのTime Profilerを使って重たいメソッドを特定する | Technology-Gym

    TimeProfilerとはXcodeのInstrumentsに含まれているプロファイリング用のツールです。 Instrumentsユーザガイド XcodeでProfileビルドをすると、Instrumentsが立ち上がって選択できます。 TimeProfilerを立ち上げると、上部トレースデータが表示されていますが、今回の主役は下部にあるCall Treeです。 初期の設定だとシステムのメソッドなども混ざってとてもわかにくいので、上記の設定にチェックを入れておくと 作成したメソッドだけになるので見やすくなると思います。 TimeProfilerの使い方 | eラーニングをすべての人に!blog.eラーニング.co.jp これで、準備は出来たので後はアプリを触っていて重たい感じのするを見ていけば、Call Treeにメソッド毎の処理時間や処理の割合が表示されます。 例として、カレンダー画面