performance
IE 10pp2 と iPad2 (iOS5) のスコアを追記しました iPhone4S (iOS5) のスコアを追記しましたFirefox 4 から window.mozRequestAnimationFrame が利用可能になっています。window.requestAnimationFrame / setTimeout(,4) / setInterval(, 16) で パーティク…
ジェバンニ仕事で、http://koebu.com/event/xmas/2010/ を iPhone / iPad に対応させました*1。 目からビーム出して頑張ってる最中のツイートまとめ iOS では、ユーザアクションを伴わない、audio.play() やaudio.load() は機能しない。さらにpreloadとautop…
version 1.05 を github と、Google Code においてあります。ベンチマーク もGoogle Code に置きました。10万要素のJSONデータの読み込みに時間かかることがありますが、気長にお待ちください。 # IE9用はこっちです http://uupaa-js-spinoff.googlecode.com…
https://github.com/uupaa/msgpack.js 速度を改善 JITの最適化を促進する方法をピコーンしたので、IEEE754周りの速度を改善しました。Opera(右上)で特に効果が見られます。 IEEE754ベンチ: https://github.com/uupaa/msgpack.js/blob/master/test/IEEE754.be…
昨日に比べて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.pack will return "Maximum call stack size exceeded" when passing big data 数日前に、「msgpack.pack が文字列を返してないよ」という issue が付いたので、第二引数が true なら、String.fromCharCode.apply を行いバイナリ文字列を返すように…
MessagePack の JavaScript 実装を GitHub に上げました。 テストは一通り終わっています(test/codec.htm)。ライセンスはまだ決めていませんがご利用はご自由にどうぞ。 HOW TO USE var mix = { any: "type" }; // MessagePackフォーマットの ByteArray にエ…
JavaScript で Flash のような滑らかなアニメーションを行うためには、クロスブラウザな知識の他に、GC(ガベージコレクション)や「どうすれば安定した品質がだせるのか」といったスキルが求められます。 # GC の話は WEB+DB PRESS 57 でちょっと書いてます。…
2年ぶりにCSSセレクタを書き直しました前回との違いは 前作の精度を98点とすると今回は96点ぐらい。W3Cの意地悪テストを幾つかスキップ コード量が半分に。実行速度はほぼ同じ jQuery拡張, :active, :visited は非サポート(:visited は空の配列を返す) W3Cの…
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…
MessagePack 発案者様から「末席あいてますよ」とお言葉をいただいたので、uupaa.js に一切依存せず、ソースコード単体で利用可能なスピンオフ版を作成しました。 Many bugfix(especially - IEEE754) Test case was enhanced msgpack codec test msgpack dow…
Flashバックエンドの実装とbugfixもいい感じに進んでます。残すは clip() globalCompositeOperation ShadowAPI TextAPI PixelAPI toDataURL(), getImageData() な感じです。 アニメーションデモ 今までは派手目なデモの紹介を控えてきましたが、そろそろ頃合…
このエントリは canvasをより速く(Flashもサポート) - latest log や canvasをより速く(Flashもサポート)-Take3 - latest log の続きです。今日も、Flashモードのレンダリングをちょっと速くしました。 送信部分の高速化 修正前 var _stack = []; var _lockS…
latest log の続きですFlashモードのレンダリング速度をさらに改善しました。fpsが半分ぐらいに落ち込む問題も解決できたようです。 なにをしたか ExternalInterface のjs側のコードを要約し CallFunction() だけにする事で、最適化していた(つもりだった)の…
latest log の続きですFlashモードのレンダリングを速くしてみました。boostも出来ます。boostすると、25fps → 60fps ぐらいに加速します。 AutoDetect Silverlight → Flash → VML 順にバックエンドを探索 Flash 優先 Flash → Silverlight → VML 順にバック…
追記 2010-02-13: Flash モードを最新に差し替えました。boostも出来ます。 Flash 優先 Flash → Silverlight → VML 順にバックエンドを探索 本文 uupaa.js には uuCanvas.js のコードが入ってましたが、色々と書き直して、またちょっと速くなりました。 また…
今日は「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>…
JavaScriptで配列のクローンを作成しようとして、悩んでいる方もいらっしゃるようですが、 以下のように、for ループや再帰なコードを手書きする必要はなくて、Array.concat() で配列のクローンは作成できます。 Array.prototype.clone = function(){ return…
IE の window.resize イベントは、いくつかの問題を抱えています。 function onresize() { (何か) } window.attachEvent("onresize", onresize); うっかり無限ループする(無限に再描画が走る) 重い(特にIE6) 解決していきましょう。 無限ループ/無限リドロー…
この日記はご指摘を元に再構成したものです。 昨日の続きです。jQuery1.3で、isArray や isFunction の処理が差し替えられています。 IE6で発生するメモリリークを回避するためのようです。isArray や isFunction などは基本的なロジックであり、かつjQuery…
この日記はご指摘を元に再構成したものです。 ざっと見ました。 1.3β1のバグがいくつか修正されています。 ID,CLASSセレクタのUNICODE判定で16進数と10進数の勘違い 修正前: /#((?:[\w\u0128-\uFFFF_-]|\\.)+)/, 修正後: /#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,…
SlickSpeed は 設定ファイル(config.ini)を修正することで、セレクタの評価順序を変更することができますが、先頭と最後に設置したセレクタのスコアがおかしくなるようです(速くなる) 順番を入れ替えるとこうなります 同じ実装(selector と keep_selector) …
2009-01-12追記 タイトル修正しました。 2009-01-14追記 String.indexOf と RegExp.test のスコアが逆に書かれてていたのを修正しました。 String.match ばかりで、RegExp.exec を使ったことがありませんでした。 ちょっと気になったので色々とベンチマーク…