JavaScript で高速なコードを書こうとする際に、はまりがちな罠と、JSX のコンパイラでどのように対処しているのかを紹介
JavaScript で高速なコードを書こうとする際に、はまりがちな罠と、JSX のコンパイラでどのように対処しているのかを紹介
はじめに はじめまして、こんにちは。クラスメソッド株式会社でWebを担当している野中です。 この度、「これから身につけるWebサイト高速化テクニック」と題して記事を連載させていただくこととなりました。 本連載ではWeb担当者やWebデザイナー、コーダーの方々に向けて高速化に関する手法や技術について調べ、身につけたテクニックを細かな解説を加えて紹介していきます。中には少し難しいテクニックも含まれますが、できる限り分かりやすく、すぐに実践できるよう紹介していきたいと思います。とても長い連載ですが、よろしくお願いいたします。 なお、本連載はクラスメソッド開発ブログで連載されている「身につけておきたいWebサイト高速化テクニック」の増補改訂版です。 本連載の流れ 本連載はできるだけ多くの方に興味を持っていただけるように、最初に高速化対策の全体像と必要な知識を紹介します。その後、具体的な高速化対策と
最近、Macが重くなり、虹色アイコンが 出るようになってきたので、高速化する方法を調べました。 今回は、高速化に有効だった方法を紹介します。 ①「OnyX」でMac内をクリーニング Mac内のお掃除に便利なのが「OnyX」です。 詳細はこちらをどうぞ。 Macの不可視ファイル表示やメンテナンス/クリーニングに「OnyX」が便利 システムやインターネット、 ログなどのキャッシュを削除してくれるのですが、 これだけで数GBの容量が確保できたりすることもあります。 ②ネットがサクサクつながるカンタン設定 インターネット環境を最適にするには「dolipo」と、 カンタンなシステム環境設定が効果的のようです。 詳細はこちら。 お金をかけずMacのネット環境を3倍高速化!騙されたと思ってdolipoとGooglePublicDNSを導入しよう ③たまった不要ファイルを削除 キャッシュや長
1. SPDYブーム到来 おかげさまで、ここ数日 SPDY が私の周りで非常にブームになってきています。 前回案内したSPDY&WS勉強会は既に200名以上の申し込みがあり、今ではSPDYネタでブログを書くと非常に注目されるうれしい状況です。時代はまさに、 SPDYはハイプサイクルを順調に駆け上がっている 状況だと思います。 図1:2012年のハイプサイクル: 図はガートナー社のプレスリリース http://www.gartner.co.jp/press/html/pr20120906-01.html から引用 SPDYが、まだ黎明期に入ったばかりなのか、それとも既にピーク期に入ったのか、それは歴史が証明してくれるでしょう。 ということで勉強会までSPDY熱が冷めないよう、私もいろんなSPDYネタを出していきたいと思います。 2. GmailがハマったSPDYの落とし穴とは 先日、 Goo
最近Railsアプリを作成している中で、初めて高速化をやったので、その際のことをメモしておく。 高速化の手順 ベンチマークをとる まずはベンチマークをとっておく。これによって、どのくらい早くなったか見極める。Railsなら、script/performance/benchmarkerを使って出来る。 テストコードとして、大量のフィクスチャを用意し、それに対して処理したベンチをとる方法もあるが、フィクスチャのデータがかなり現実味を帯びている必要があるため、本番環境でベンチをとった方がいい。 また、プロファイルして、本当にDBアクセスがボトルネックになっているのかを見ておく。 スロークエリログを見る MySQLには、結果を得るのに一定時間以上かかったクエリを記録しておく、「スロークエリログ」という機能があるので、どのクエリがボトルネックになっているかをこのログを見て調べる。 ログファイルの場所
MicrosoftのInternet Explorer PMであるJatinder Mann氏は、BUILD 2012でHTML5アプリとサイトを高速化する50のパフォーマンストリックというセッションで、Webアプリケーションを高速化する多くのチップスを提供した。 Mann氏が提供したアドバイスは、以下の6つの原則を中心に構成されていた。 1. ネットワークリクエストに迅速に応答する リダイレクトを避ける。上位1,000のWebサイトのうち63%は、リダイレクトを使用している。これらはリダイレクトをやめることによって10%のパフォーマンスを改善することができる。 メタリフレッシュを避ける。世界のURLのうち14%は、メタリフレッシュを使っている。 可能な限りユーザーの近くにあるCDNを使用してサーバーの応答時間を最小化する。 異なるドメインからのリソースをダウンロードすることによって、同時
どれぐらいスゴいかというと、「サーバーにインストールするだけで、あとは設定ファイルをちょちょっといじれば、かなり高速化できちゃう」というぐらいスゴいのです。しかも、どんなサイトでも、どんなCMSを使っていても「インストールするだけ」。 Webサイトを高速化すると、ユーザーに優しいし、場合によっては検索結果での順位にも良い影響が出るかもしれない……それはわかっていても、なかなか本格的にサイトを高速化するのは難しいものです。 サーバー側の高速化に加えて、HTMLのつくりや画像のファイルサイズ最適化、さらにはCSSを調整しての画像スプライト化やCSS/JSファイルの結合・最適化によるブラウザとサーバーの通信本数削減などなど、実はやらなきゃいけないことがたくさん。 グーグルの提供するmod_pagespeedは、そうしたことの、かなりの部分を自動的に行うものです。 mod_pagespeedはこん
[追記1] 最後で説明しているproxy cacheの設定を修正しました。 [追記2] nginx proxy cacheでキャッシュしない場合の処理を変更しました。 [追記3] スマートフォンや携帯で閲覧した時にキャッシュしない設定を追加しました。 はじめに 大げさな題名ですが、今回はWordPress単体を速くするのではなく、データベースやWebサーバなどの調整、またnginxのproxy cache機能を使って速くする話になります。 サイトの構成によっては、proxy cacheは使えないかもしれませんが、使わなくても5倍程度速くすることはできましたので、参考にしていただければと思います。 今回行うチューニング一覧 DBを最適化するプラグインを導入する APCを導入してPHPを速くする MySQLを速くする 重いWordPressプラグインを外す nginx+FastCGIにする W
大量の入出力データを扱う課題を解く際に,入出力の処理に cin, cout ストリームを使用した C++ プログ ラムは scanf, printf 関数を使用した同等のプログラムに比べてとても遅くなることに注意してほしい.よっ て,cin / cout ストリームを使用しているのであれば,代わりに scanf / printf を使用することを強く薦める. しかし,それでも cin / cout を使いたい場合は,プログラムの冒頭に次の行 ios::sync_with_stdio(false); を加え,その上で endl を決して使用せずに代わりに “\n” を使用することを薦める. ただし,ios::sync_with_stdio(false); を含むと cin / cout と scanf / printf を同時に使えなくなること に注意せよ.つまり,上の行を使用する場合は,c
ちょっと試してみる。sum取るところはどうでもいいんだが、配列なめる順序によってどれくらい速さが違うのか、iterator使うと速度どうなるのか、accumulateとか使うと早くなるのかなどを試したかった。実験に使ったのは以下のコードで、処理XXXを実験するときにはそれ以外はコメントアウトした。10回とかの平均取ろうかと思ったけど、傾向は変わらない感じだったので、とりあえず1回で。 # 色々と改善点があるので、追記のところを読んでください。 プログラム #include <iostream> #include <vector> #include <numeric> using namespace std; int main(int argc, char **argv) { const int N = 10000; vector<vector<int> > A(N); for (int i
Firefox ではブックマークや履歴等をデータベースで管理していますが、長い期間使用しているうちにデータベースの肥大化のためウェブページの表示や、Firefoxそのものの動作が遅くなることがあります。 これらのデータの最適化を行うことにより、データの読出しや更新をスムーズに行えるようにして、Firefox の高速化を試みます。 ------------------------ 最適化は初期状態では REINDEX のみですが、 「VACUUM後にREINDEXを実行する」を選択すると VACCUM と REINDEX を行うようになります。 ※VACUUM 後に REINDEX をする設定にしてあってもデータベースの余分な隙間が20%未満の場合は REINDEX のみ行います。 手動実行時の記号の意味 一番上の大文字はそれぞれvacuum と reindex を表します。 V(acuum
Firefoxは多機能である上に、拡張機能を多数インストールするなどで、日に日にヘビーなブラウジング環境になりがちです。 海外のブログでは、様々なFirefoxの動作軽量化や速度向上についてのTip'sが多く書かれていますが、あてにならないもの、それはちょっと怖いな・・というカスタムも多いのでうかつには手を出せません。 一応ユーザーとして一通り試していますが、その中でも簡単で安全と思われ、効果を体感できたメモリマネジメント方法をご紹介します。 ご存じのように、Firefoxを利用してブラウジングしている際のメモリ使用量というのはかなりのサイズで、他のアプリケーションやWindowsの動作にも少なからず悪影響を及ぼしている場合があります。 下記の2点の設定は、Firefoxのメモリ使用方法を少しカスタムするだけで体感できるほど軽快に動作させることができるTip'sです。 ■メモリーキャッシュ
Fireboot(ファイアブート) Firefoxをアンインストールする理由のひとつが「起動が遅い」だそうです。 たしかに、もうちょっと早くてもいいよねー。と。 これほど起動が遅い理由のひとつに、「拡張機能の読み込み」があります。 拡張自体はzipファイルでサイズは小さいのですが、解凍に(非常に)時間がかかります。 拡張機能にはいろんな国の言葉が埋め込まれており、どこの国の人でも自国の言葉で拡張を利用できます(例外もあります)。 が、よくよく考えると使いもしない大量の言語ファイルが起動の足を引っ張っていることに気づきます。(しかも、毎回!) どうせ使わないんだし、削ればいいんじゃね?wというわけで作ったのがこれです。 このツールのそもそもの発端はプロセス監視ツールのProcess Monitorです。素晴らしいソフトウエアの無償公開に感謝します。 (ファイルが頻繁に削除されるためFC2から
Fire FoxでのIPv6利用の無効化 Fire Foxでのはブラウジングの際の名前解決において、最初にIPv6での 名前解決を試みて、試し失敗したらIPv4での名前解決を行うそうだ。 現状、この処理は無意味で無駄に時間がかかってしまうので無効にすると多少は 表示が早くなるとのこと。 設定方法: FireFoxのアドレスバーにabout:config と入力しnetwork.dns.disableIPv6の項目を クリックして値をtrueに変更する。 カーネルでのIPv6利用の無効化 こちらの設定は不要かもしれないが、多少は早くなるかもしれないのでやってみた。 設定方法: /etc/modprobe.d/aliasesの修正 1) alias net-pf-10 ipv6をコメントアウト 2) 同ファイルに alias net-pf-10 off alias
その強力なアドオンで、とっても便利なFirefoxですが、毎日使っているとドンドン動きが重くなっていってしまいます。 うーん、どうにか軽くならないものかと色々やってみました。 起動を速くしたい まずはとにかく時間のかかる起動をなんとかしたいと思います。 Firefoxはブックマークやら履歴やらクッキーやらをSQLite DBで管理しています。 毎日使っていくうちにDBは大きくなり、起動や動作が重くなっていくとのこと。 そこでSQLite Optimizerというアドオンを使って、DBの最適化をしてしまいます。 手順は以下の通り。 1. SQLite Optimizerをインストール。 2. アドオンの管理画面でSQLite Optimizerの環境設定画面を開きます。 3. 『Firefox終了時にsqliteデータベースのREINDEXを実行する』にチェックを入れます。 以後、Firef
ERUNT The Emergency Recovery Utility NT Registry Backup and Restore for Windows NT/2000/2003/XP/Vista English: Detailed information Frequently Asked Questions Deutsch: Detaillierte Informationen Häufig gestellte Fragen Read user opinions: SnapFiles � FileForum NTREGOPT NT Registry Optimizer Registry Optimization for Windows NT/2000/2003/XP/Vista English: Detailed information Freque
Firefox web browser - Faster, more secure & customizable LinuxLinksにおいてFirefox Tipsのタイトルのもと、Firefoxの高速化を実施するためのテクニックが紹介されている。設定をすることでFirefoxの性能を引き上げ、Google Chromeのように開発ペースの早いブラウザにも対応できると冒頭に説明がある。なお、紹介されているテクニックを試す前に、prefs.jpファイルに保存されている設定のバックアップをとることが推奨されている。紹介されているテクニックは次のとおり。 BleachBitを使う BleachBitをインストールして使う。BleachBitはキャッシュ、履歴データ、一時ファイル、不要な使われていないローカルファイル、ログ、クッキーなどのデータを削除するツール。Windows版とLinux版が提
Firefoxスピードアップについてはユーザーの誰もが感心を持っていることでしょう。 ブラウジング速度の高速化はブロードバンドの普及に伴い、もっと、もっとと欲求が高まるのは当然なことですね。 前回も書いたように、Firefoxはアドレスバーに”about:config”と入力することによって各種設定項目の追加・変更を行うことができるようになっています、今回も3カ所ほどいじってみましょう。 このネタは海外のブロガーや日本のブロガーもかなり実践・紹介しているものですが、とりあえずIEで言えば「窓の手」を使ったカスタムみたいなものとでも解釈してください。 まず、アドレスバーにabout:configと入力します。 1.フィルタ欄に、”network.http.pipelining”(””は必要ありません。以下同)と入力し、表示されたnetwork.http.pipelining部分をダブルクリッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く