performance

パーティクル3万個

IE 10pp2 と iPad2 (iOS5) のスコアを追記しました iPhone4S (iOS5) のスコアを追記しましたFirefox 4 から window.mozRequestAnimationFrame が利用可能になっています。window.requestAnimationFrame / setTimeout(,4) / setInterval(, 16) で パーティク…

クリスマスツリーを iPhone でも見れるようにしたよ

ジェバンニ仕事で、http://koebu.com/event/xmas/2010/ を iPhone / iPad に対応させました*1。 目からビーム出して頑張ってる最中のツイートまとめ iOS では、ユーザアクションを伴わない、audio.play() やaudio.load() は機能しない。さらにpreloadとautop…

msgpack.js を改善しました

version 1.05 を github と、Google Code においてあります。ベンチマーク もGoogle Code に置きました。10万要素のJSONデータの読み込みに時間かかることがありますが、気長にお待ちください。 # IE9用はこっちです http://uupaa-js-spinoff.googlecode.com…

msgpack.js を改善しました

https://github.com/uupaa/msgpack.js 速度を改善 JITの最適化を促進する方法をピコーンしたので、IEEE754周りの速度を改善しました。Opera(右上)で特に効果が見られます。 IEEE754ベンチ: https://github.com/uupaa/msgpack.js/blob/master/test/IEEE754.be…

msgpack.js をさらに速く

昨日に比べて2倍速ぐらいになりました。 https://github.com/uupaa/msgpack.js/blob/master/msgpack.js Data = 10000 Opera 10.63 Firefox 4.0β7 Chrome 9 dev IE9pp7 JSON.stringify 53 24 67 38 JSON.parse 11 34 29 16 stringify + parse 64 58 97 54 msg…

msgpack.js improvement

msgpack.pack will return "Maximum call stack size exceeded" when passing big data 数日前に、「msgpack.pack が文字列を返してないよ」という issue が付いたので、第二引数が true なら、String.fromCharCode.apply を行いバイナリ文字列を返すように…

msgpack.js bench mark

MessagePack の JavaScript 実装を GitHub に上げました。 テストは一通り終わっています(test/codec.htm)。ライセンスはまだ決めていませんがご利用はご自由にどうぞ。 HOW TO USE var mix = { any: "type" }; // MessagePackフォーマットの ByteArray にエ…

Flashのように滑らかなアニメーションを実装するには(uupaa.js vs jQueryデモ)

JavaScript で Flash のような滑らかなアニメーションを行うためには、クロスブラウザな知識の他に、GC(ガベージコレクション)や「どうすれば安定した品質がだせるのか」といったスキルが求められます。 # GC の話は WEB+DB PRESS 57 でちょっと書いてます。…

CSSセレクタを書き直したなど

2年ぶりにCSSセレクタを書き直しました前回との違いは 前作の精度を98点とすると今回は96点ぐらい。W3Cの意地悪テストを幾つかスキップ コード量が半分に。実行速度はほぼ同じ jQuery拡張, :active, :visited は非サポート(:visited は空の配列を返す) W3Cの…

msgpack.js RC2

Change Log Retake toIEEE754() Retake callback arguments in msgpack.download() and msgpack.download() Test case msgpack codec test msgpack download / upload demo benchmark msgpack vs json Functions Download and Upload functions msgpack.down…

msgpack.js RC

MessagePack 発案者様から「末席あいてますよ」とお言葉をいただいたので、uupaa.js に一切依存せず、ソースコード単体で利用可能なスピンオフ版を作成しました。 Many bugfix(especially - IEEE754) Test case was enhanced msgpack codec test msgpack dow…

Canvas on Flashでアニメーション

Flashバックエンドの実装とbugfixもいい感じに進んでます。残すは clip() globalCompositeOperation ShadowAPI TextAPI PixelAPI toDataURL(), getImageData() な感じです。 アニメーションデモ 今までは派手目なデモの紹介を控えてきましたが、そろそろ頃合…

canvasをより速く(Flashもサポート)-Take4

このエントリは canvasをより速く(Flashもサポート) - latest log や canvasをより速く(Flashもサポート)-Take3 - latest log の続きです。今日も、Flashモードのレンダリングをちょっと速くしました。 送信部分の高速化 修正前 var _stack = []; var _lockS…

canvasをより速く(Flashもサポート)-Take3

latest log の続きですFlashモードのレンダリング速度をさらに改善しました。fpsが半分ぐらいに落ち込む問題も解決できたようです。 なにをしたか ExternalInterface のjs側のコードを要約し CallFunction() だけにする事で、最適化していた(つもりだった)の…

canvasをより速く(Flashもサポート)-Take2

latest log の続きですFlashモードのレンダリングを速くしてみました。boostも出来ます。boostすると、25fps → 60fps ぐらいに加速します。 AutoDetect Silverlight → Flash → VML 順にバックエンドを探索 Flash 優先 Flash → Silverlight → VML 順にバック…

canvasをより速く(Flashもサポート)

追記 2010-02-13: Flash モードを最新に差し替えました。boostも出来ます。 Flash 優先 Flash → Silverlight → VML 順にバックエンドを探索 本文 uupaa.js には uuCanvas.js のコードが入ってましたが、色々と書き直して、またちょっと速くなりました。 また…

Firefoxのin演算子がモッサリなので何とかしてみた

今日は「Firefox3.5+で、配列に対してin演算子を使うと、Firefox3に比べ5〜10倍モッサリする」という困った現象を、何とかする方法をご紹介します。 Firefox3 33 Firefox3.6 157 Firefox3.7a1pre 96 <body onload="bench()"><script> function bench() { var pure = [0, 1, 2, 3, 4, 5, 6, 7</body>…

Array.concatで配列のクローン(コピー)を作成する

JavaScriptで配列のクローンを作成しようとして、悩んでいる方もいらっしゃるようですが、 以下のように、for ループや再帰なコードを手書きする必要はなくて、Array.concat() で配列のクローンは作成できます。 Array.prototype.clone = function(){ return…

IE の window.resize イベントの問題を回避する

IE の window.resize イベントは、いくつかの問題を抱えています。 function onresize() { (何か) } window.attachEvent("onresize", onresize); うっかり無限ループする(無限に再描画が走る) 重い(特にIE6) 解決していきましょう。 無限ループ/無限リドロー…

Array かどうかを判定するいくつかの方法について

この日記はご指摘を元に再構成したものです。 昨日の続きです。jQuery1.3で、isArray や isFunction の処理が差し替えられています。 IE6で発生するメモリリークを回避するためのようです。isArray や isFunction などは基本的なロジックであり、かつjQuery…

jQuery1.3 がリリースされてます。

この日記はご指摘を元に再構成したものです。 ざっと見ました。 1.3β1のバグがいくつか修正されています。 ID,CLASSセレクタのUNICODE判定で16進数と10進数の勘違い 修正前: /#((?:[\w\u0128-\uFFFF_-]|\\.)+)/, 修正後: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,…

SlickSpeed が信用できない

SlickSpeed は 設定ファイル(config.ini)を修正することで、セレクタの評価順序を変更することができますが、先頭と最後に設置したセレクタのスコアがおかしくなるようです(速くなる) 順番を入れ替えるとこうなります 同じ実装(selector と keep_selector) …

正規表現のベンチマーク(String.match と RegExp.exec のざっくりとした違い)

2009-01-12追記 タイトル修正しました。 2009-01-14追記 String.indexOf と RegExp.test のスコアが逆に書かれてていたのを修正しました。 String.match ばかりで、RegExp.exec を使ったことがありませんでした。 ちょっと気になったので色々とベンチマーク…