SlideShare a Scribd company logo
Submit Search
Upload
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
Report
Share
parrotstudio
Follow
•
1 like
•
824 views
1
of
54
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
•
1 like
•
824 views
Report
Share
Download Now
Download to read offline
Technology
Design
2011/02/12におこなったLT資料 漫画はコミPo!で作成
Read more
parrotstudio
Follow
Recommended
エコなWebサーバー by
エコなWebサーバー
emasaka
691 views
•
30 slides
今週やった事 by
今週やった事
Aira Sakajiri
206 views
•
6 slides
Scaling by
Scaling
Kazuho Oku
1.7K views
•
17 slides
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2 by
JSONでメール送信 | HTTP API Server ``Haineko''/YAPC::Asia Tokyo 2013 LT Day2
azumakuniyuki 🐈
1.9K views
•
16 slides
高速化のポイント by
高速化のポイント
ryos36
458 views
•
23 slides
RaspberryPiでSambaサーバを構築してみた話 by
RaspberryPiでSambaサーバを構築してみた話
wakatakeru
252 views
•
14 slides
More Related Content
What's hot
DynamoDBのまえにキャッシュおく奴 by
DynamoDBのまえにキャッシュおく奴
Sugawara Genki
17.1K views
•
12 slides
Traffic Management with Istio ( with Demo ) by
Traffic Management with Istio ( with Demo )
ロフト くん
274 views
•
51 slides
mrubyのfiberを試してみた by
mrubyのfiberを試してみた
Kindai University
982 views
•
15 slides
Re:VIEW新パーサ現状確認(2015年2月版) by
Re:VIEW新パーサ現状確認(2015年2月版)
masayoshi takahashi
3.8K views
•
11 slides
20120721_ishkawa by
20120721_ishkawa
Yosuke Ishikawa
1.1K views
•
18 slides
Webサーバの性能測定 by
Webサーバの性能測定
Ryo Maruyama
4.5K views
•
21 slides
What's hot
(7)
DynamoDBのまえにキャッシュおく奴 by Sugawara Genki
DynamoDBのまえにキャッシュおく奴
Sugawara Genki
•
17.1K views
Traffic Management with Istio ( with Demo ) by ロフト くん
Traffic Management with Istio ( with Demo )
ロフト くん
•
274 views
mrubyのfiberを試してみた by Kindai University
mrubyのfiberを試してみた
Kindai University
•
982 views
Re:VIEW新パーサ現状確認(2015年2月版) by masayoshi takahashi
Re:VIEW新パーサ現状確認(2015年2月版)
masayoshi takahashi
•
3.8K views
20120721_ishkawa by Yosuke Ishikawa
20120721_ishkawa
Yosuke Ishikawa
•
1.1K views
Webサーバの性能測定 by Ryo Maruyama
Webサーバの性能測定
Ryo Maruyama
•
4.5K views
MmapScanner by Masahiro Tomita
MmapScanner
Masahiro Tomita
•
1.7K views
Viewers also liked
旅行予約サイトにおけるレコメンデーション導入効果の最大化 by
旅行予約サイトにおけるレコメンデーション導入効果の最大化
businessanalytics
948 views
•
12 slides
ユーザーテスト体験イベント@株式会社メンバーズ 20150703 by
ユーザーテスト体験イベント@株式会社メンバーズ 20150703
Daisuke Hiraishi
789 views
•
21 slides
U iscope 事業会社様向け_概要資料 by
U iscope 事業会社様向け_概要資料
Daisuke Hiraishi
805 views
•
16 slides
CPA最適化配信のポイント by
CPA最適化配信のポイント
Bypass_DSP
1.6K views
•
7 slides
メールのCVR向上施策_110831 by
メールのCVR向上施策_110831
j-muraki
968 views
•
8 slides
メルマガマーケティング Ato z by
メルマガマーケティング Ato z
Hati Miura
423 views
•
39 slides
Viewers also liked
(10)
旅行予約サイトにおけるレコメンデーション導入効果の最大化 by businessanalytics
旅行予約サイトにおけるレコメンデーション導入効果の最大化
businessanalytics
•
948 views
ユーザーテスト体験イベント@株式会社メンバーズ 20150703 by Daisuke Hiraishi
ユーザーテスト体験イベント@株式会社メンバーズ 20150703
Daisuke Hiraishi
•
789 views
U iscope 事業会社様向け_概要資料 by Daisuke Hiraishi
U iscope 事業会社様向け_概要資料
Daisuke Hiraishi
•
805 views
CPA最適化配信のポイント by Bypass_DSP
CPA最適化配信のポイント
Bypass_DSP
•
1.6K views
メールのCVR向上施策_110831 by j-muraki
メールのCVR向上施策_110831
j-muraki
•
968 views
メルマガマーケティング Ato z by Hati Miura
メルマガマーケティング Ato z
Hati Miura
•
423 views
45万回のアイコンABテストにみる、ダウンロードされやすいアイコンの特徴 by Katsuaki Sato
45万回のアイコンABテストにみる、ダウンロードされやすいアイコンの特徴
Katsuaki Sato
•
60.3K views
KAIZEN platformの公開グロースハック!〜 CVRを40%以上向上させた施策 先生:須藤 憲司 by schoowebcampus
KAIZEN platformの公開グロースハック!〜 CVRを40%以上向上させた施策 先生:須藤 憲司
schoowebcampus
•
32.4K views
「クックパッドとZaimのグロースハックについて」 by Kato Kyosuke
「クックパッドとZaimのグロースハックについて」
Kato Kyosuke
•
116.6K views
登録数2倍にしてと言われた時の正しい対処法 by Chihiro Kurosawa
登録数2倍にしてと言われた時の正しい対処法
Chihiro Kurosawa
•
189K views
Similar to 思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会) by
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
parrotstudio
1.2K views
•
62 slides
FM音源をいじれるWebサービスを作った by
FM音源をいじれるWebサービスを作った
CHY72
2.9K views
•
68 slides
Couch DB in 15minutes by
Couch DB in 15minutes
Yohei Sasaki
1.2K views
•
31 slides
泥臭い運用から、プログラマブルインフラ構築(に行きたい) by
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
4K views
•
47 slides
CommunityOpenDay2012名古屋セッション資料 by
CommunityOpenDay2012名古屋セッション資料
Shinichiro Isago
1.6K views
•
54 slides
Windows Azure Community Open Day 2012 by
Windows Azure Community Open Day 2012
Microsoft Openness Japan
572 views
•
54 slides
Similar to 思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
(20)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会) by parrotstudio
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
parrotstudio
•
1.2K views
FM音源をいじれるWebサービスを作った by CHY72
FM音源をいじれるWebサービスを作った
CHY72
•
2.9K views
Couch DB in 15minutes by Yohei Sasaki
Couch DB in 15minutes
Yohei Sasaki
•
1.2K views
泥臭い運用から、プログラマブルインフラ構築(に行きたい) by Akihiro Kuwano
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
•
4K views
CommunityOpenDay2012名古屋セッション資料 by Shinichiro Isago
CommunityOpenDay2012名古屋セッション資料
Shinichiro Isago
•
1.6K views
Windows Azure Community Open Day 2012 by Microsoft Openness Japan
Windows Azure Community Open Day 2012
Microsoft Openness Japan
•
572 views
20221214_TechFeed_10_kitazaki_v1.pdf by Ayachika Kitazaki
20221214_TechFeed_10_kitazaki_v1.pdf
Ayachika Kitazaki
•
34 views
20201127 .NET 5 by Takayoshi Tanaka
20201127 .NET 5
Takayoshi Tanaka
•
414 views
20230511_Node-RED_Park_vol11_kitazaki_v1.pdf by Ayachika Kitazaki
20230511_Node-RED_Park_vol11_kitazaki_v1.pdf
Ayachika Kitazaki
•
76 views
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for... by Naoya Ito
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
Naoya Ito
•
5.5K views
10th jan 2013_miyazaki by Kensaku Komatsu
10th jan 2013_miyazaki
Kensaku Komatsu
•
1.5K views
Tremaで構築!中小企業の社内LAN #Tremaday 120419 by エイシュン コンドウ
Tremaで構築!中小企業の社内LAN #Tremaday 120419
エイシュン コンドウ
•
4.9K views
Effective web performance tuning for smartphone by dena_study
Effective web performance tuning for smartphone
dena_study
•
64.8K views
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説 by Takao Tetsuro
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro
•
492 views
Inside of excel 方眼紙撲滅委員会 #pyfes by Takeshi Komiya
Inside of excel 方眼紙撲滅委員会 #pyfes
Takeshi Komiya
•
2.2K views
【とらラボLT】go言語でのweb apiの作り方3選 by 虎の穴 開発室
【とらラボLT】go言語でのweb apiの作り方3選
虎の穴 開発室
•
436 views
CouchDB JP & BigCouch by Yohei Sasaki
CouchDB JP & BigCouch
Yohei Sasaki
•
1.8K views
Smart Tennis Lesson Serverless Design by Ryuji TAKEHARA
Smart Tennis Lesson Serverless Design
Ryuji TAKEHARA
•
1.3K views
20191211_Apache_Arrow_Meetup_Tokyo by Kohei KaiGai
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
•
1.1K views
Crooz meet fusion io3 open by takaoka susumu
Crooz meet fusion io3 open
takaoka susumu
•
1.9K views
More from parrotstudio
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本 by
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
parrotstudio
5.1K views
•
43 slides
希望の関数と絶望の副作用 by
希望の関数と絶望の副作用
parrotstudio
2.2K views
•
38 slides
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜 by
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
parrotstudio
2.3K views
•
50 slides
ぱろっと、Padrinoやめるってよ by
ぱろっと、Padrinoやめるってよ
parrotstudio
2K views
•
30 slides
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09) by
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09)
parrotstudio
1.8K views
•
31 slides
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23) by
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23)
parrotstudio
1.1K views
•
41 slides
More from parrotstudio
(14)
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本 by parrotstudio
"プロのプログラマ"を目指す初心者が最初に読むべきたった一冊の本
parrotstudio
•
5.1K views
希望の関数と絶望の副作用 by parrotstudio
希望の関数と絶望の副作用
parrotstudio
•
2.2K views
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜 by parrotstudio
「もうなにもこわくない」関数型言語 〜ふつうのプログラマが関数型言語を知るべき理由・reload〜
parrotstudio
•
2.3K views
ぱろっと、Padrinoやめるってよ by parrotstudio
ぱろっと、Padrinoやめるってよ
parrotstudio
•
2K views
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09) by parrotstudio
エンジニアがTRPGをやるべき理由 〜隣り合わせの遊びと技術〜 (Gunma.web #12 2013/02/09)
parrotstudio
•
1.8K views
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23) by parrotstudio
(´・ω・`)としたーは衰退しました (Gunma.web #11 2012/11/23)
parrotstudio
•
1.1K views
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08) by parrotstudio
私に作る時間がないのはどう考えても仕事が悪い!? (Gunma.web #10 2012/09/08)
parrotstudio
•
949 views
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03) by parrotstudio
ネタプログラミング言語クリエイターYouma (Gunma.web #8 2012/03/03)
parrotstudio
•
2K views
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17) by parrotstudio
プログラマになれないあなたのための言語戦略 (Gunma.web #7 2011/12/17)
parrotstudio
•
1.4K views
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03) by parrotstudio
Signs;Gate - RESTfulなサイトの作り方 (Gunma.web #6 2011/09/03)
parrotstudio
•
1.4K views
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14) by parrotstudio
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
parrotstudio
•
15.3K views
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11) by parrotstudio
俺の体がこんなにすっきりしているわけがない ~5分でわかる催眠プログラミング~ (Gunma.web #3 2010/12/11)
parrotstudio
•
2.3K views
「一番いいおすすめを頼む」 ~5分でわかるレコメンドエンジンの基礎~ (Gunma.web #3 2010/12/11) by parrotstudio
「一番いいおすすめを頼む」 ~5分でわかるレコメンドエンジンの基礎~ (Gunma.web #3 2010/12/11)
parrotstudio
•
4.9K views
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9) by parrotstudio
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
•
1.5K views
Recently uploaded
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development site
Atomu Hidaka
71 views
•
41 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料
ssusere7a2172
300 views
•
19 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
172 views
•
13 slides
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdf
nanamatsuo
14 views
•
9 slides
さくらのひやおろし2023 by
さくらのひやおろし2023
法林浩之
91 views
•
58 slides
JJUG CCC.pptx by
JJUG CCC.pptx
Kanta Sasaki
6 views
•
14 slides
Recently uploaded
(11)
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
71 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料
ssusere7a2172
•
300 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
172 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdf
nanamatsuo
•
14 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023
法林浩之
•
91 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
Knowledge & Experience
•
8 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
175 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
13 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
73 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
41 views
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
1.
思い通りにいかないのがWebなんて
割り切りたくないから Present by ぱろっと(@parrot_studio) for Gunma.web #4 2011/02/12
2.
Profile Twitter : @parrot_studio hatena/github
: parrot_studio
3.
Recent Work ・rdgc-dm 0.2.2
2011/01/22 Released!! ・“RO”gue #2 - The White Maze - Coming Soon ...? ・Trying to make something with “Scala”
4.
Chapter I
誰も僕を責めることはできない
5.
今回のテーマ: Webサイトが重くなる原因
6.
例:とあるWeb企業にて
11.
よく言われること: サーバサイドプログラムが遅い
12.
CPU処理速度の比較 Core i7 2600(3.4GHz)
10倍以上 Pen4 3.0GHz しかも8スレッド Σ(゚Д゚;≡;゚д゚) 0 4000 8000 12000
13.
Firebugで サイトの描画時間を計ってみる
14.
グラフの見方 青:DNSルックアップ 緑:接続 ベージュ:ブラウザの待ち 紫:サーバサイド処理
15.
HatenaのBlog
http://d.hatena.ne.jp/parrot_studio/
16.
ROのBlog(FC2)
http://parrot.blog21.fc2.com//
17.
描画時間
サーバサイド 全描画 (sec) 処理 (外部を除く) Hatena 0.659 1.44 (<1.0) RO(FC2) 0.649 6.6 (>5.0) ※外部:TwitterのBlogパーツや広告等
18.
TCP/IP通信のステップ (DNSルックアップ) => セッション確立
=> リクエスト送信 => サーバ処理 => レスポンス受信 (=> 描画・実行等)
19.
ネットワーク通信が多いほど 総合的な画面描画は遅い
=重い(´-ω-)
20.
Chapter II
僕にその手を動かせというのか
21.
どうやって ネットワーク通信の無駄 を省くか(´・ω・)?
22.
今回は 「画像」と「Ajax」 についてだけ
23.
Case:1 多すぎるアイコン
24.
リッチなデザインほど 細かいところまでアイコンで表現する
(´・ω・)(・ω・`)ネー
25.
よく見ると ほとんどが ブラウザの待ち
26.
ブラウザの 同時接続数が4だとすると
100個の画像を読むのに 25回分の通信時間がいる(lll゚Д゚)
27.
解決策の一例: CSSスプライト
28.
画像を一つにまとめて CSSで一部を切り出して表示
29.
まとめる
div#icon_blue { width: 10px; height: 10px; background-image: url(/icons.png); background-repeat: no-repeat; background-position: 0 -20px; }
30.
画像の数が大幅に減るので 通信時間減少・キャッシュ有効
∠( ゚д゚)/
31.
But... ・画像を部分的に更新できない ・CSSを書くコスト増大
・ブラウザの描画コストが増える ・ユーザ投稿画像には使えない
32.
サイトの傾向に応じて検討を
(`・ω・´) b
33.
Case:2 Ajaxの隠れた無駄
34.
例: 都道府県に対応する地区を APIから動的に読み込み
35.
jQueryで単純に書くと・・・ // 県に対応する地区の取得function var get_addr_list
= function(cd){ // 呼ばれるたびに通信発生 return $.getJSON(url, {p: cd}); }
36.
A県→B県→A県と操作する場合 A県に対するレスポンスは同じ => 通信の無駄(´・ω・`)
37.
APIの結果をキャッシュしよう! var cache =
{}; var get_addr_list = function(cd){ // キャッシュされていなかったら通信してGET if (! cache[cd]) { cache[cd] = $.getJSON(url, {p: cd}); } return cache[cd]; }
38.
こんな場合は(・A・)イクナイ!! ・APIに副作用がある (実行のたびに結果が変わる) ・データが巨大/複雑すぎる (ブラウザの使用メモリが莫大に)
39.
(DBにアクセスするコスト同様) APIにアクセスするコストも考えよう
(`・ω・´)
40.
Chapter III
すくいきれないもの
41.
他にもある”遅くなる原因”
42.
サーバサイドのプログラムが遅い サーバが(ネットワーク的に)遠い キャッシュを使ってない サーバで圧縮をしてない(gzip / mod_pagespeed) やり取りするファイルがでかい(圧縮されてない・無駄が多い等) CSS/JSが外部ファイル化されてない(キャッシュがきかない) CSSがheadの外にある(後から読まれるCSSは再描画発生でちらつく) CSSが分散している(ファイルが複数・HTMLに不要な直書き) CSSのセレクタが複雑すぎる JSの書き方が重い(無駄な処理してない?
書き換えを繰り返してない?) AjaxでAPIを叩きすぎ(いっぺんにデータが取れない? キャッシュできない?) DOMツリーの走査に時間をかけすぎ(DOMが複雑ならidでコストダウン) 画像多すぎ(画像の数だけリクエストが投げられる) etc...
43.
原因は一つではないから Firebug等のツールで確認が必要
44.
詳しくは・・・
45.
デザイナー
サーバ担当 プログラマー それぞれできることがある
46.
手を取り合って
47.
ありがとうございました (・∀・)人(・∀・)人(・∀・)
48.
【おまけ】
49.
せんせー(`・ω・´)ノ ブラウザのキャッシュを使えば 画像を読み込まないんじゃ?
50.
キャッシュを使っても 通信が発生する場合がある (キャッシュ確認で通信 => コード304)
51.
でも、Expiresヘッダを使えば
指定された期間通信しない # Apacheの例 ExpiresActive On ExpiresType image/png “access plus 1 year”
52.
せんせー、それだと画像を更新しても 再取得してもらえませんよ
(´・ω・)?
53.
URLに細工しよう(`・ω・´) b src=“/images/icon.png?12345678”
※数値はファイルの更新時間
54.
Rails等のフレームワークなら 自動でこういったURLになるよ
(´・ω・)(・ω・`)ネー