Web時代の大富豪的プログラミングのススメ
Upcoming SlideShare
Loading in...5
×
 

Web時代の大富豪的プログラミングのススメ

on

  • 4,005 views

社内勉強会のLTで当たり前なことを大まじめに話してみました。

社内勉強会のLTで当たり前なことを大まじめに話してみました。

Statistics

Views

Total Views
4,005
Views on SlideShare
1,463
Embed Views
2,542

Actions

Likes
1
Downloads
1
Comments
0

12 Embeds 2,542

http://uzabase.blogspot.jp 2460
http://uzabase.blogspot.com 38
http://uzabase.blogspot.sg 11
https://twitter.com 10
http://www.uzabase.blogspot.jp 8
http://uzabase.blogspot.tw 5
http://feedly.com 2
http://uzabase.blogspot.com.au 2
http://uzabase.blogspot.hk 2
http://www.google.co.jp 2
http://uzabase.blogspot.fr 1
http://translate.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Web時代の大富豪的プログラミングのススメ Web時代の大富豪的プログラミングのススメ Presentation Transcript

  • WEB時代の大富豪的プログラミング のススメ @chimerast たけうちひでゆき
  • 自己紹介• たけうちひでゆき• 肩書き: 永遠のNEET• Twitter: @chimerast
  • 富豪的プログラミング• メモリや実行効率を気にしないでお気楽にプロ グラムを作る• 条件が変わる度にすべての計算や表示を行なう by 増井俊之 (富豪化理論研究家) 1996/10/14 http://www.pitecan.com/fugo.html
  • memcachedの功罪• 猫も 子もmemcached• キャッシュが欲しい? じゃあmemcachedで。• そんな装備で大丈夫か?
  • じゃあ、何使えばいいの?
  • In-Process Cache
  • In-Process Cache• Map<String, T> cache = new HashMap<String, T>();• var cache = {};• %cache = ();
  • In-Process Cacheの利点• ネットワークコストがかからない!• Serializationコストがかからない!• 注: ちゃんとキャッシュ用途で使うならLRUアルゴリズム等による破 棄を実装したモジュールを使うこと• あとThread-safeかどうかも重要
  • データ数による速度の違い Nop LocalMemcached RemoteMemcached InProcessCache800ms600ms400ms200ms 0ms 1 10 100 1000 10000 get() size=64kb, loop=1000, thread=1
  • 同時アクセス数による速度の違い Nop LocalMemcached RemoteMemcached InProcessCache7000ms5250ms3500ms1750ms 0ms 1 10 20 50 100 get() size=64kb, count=10000, loop=1000
  • 同時アクセス数による速度の違い 単位: ms 1 10 20 50 100Nop 0.518 2.243 0.397 0.406 2.884LocalMemcachd 454.321 907.012 1582.445 3896.407 6626.150RemoteMemcachd 664.972 737.439 1168.138 2866.942 5642.771InProcessCache 5.846 63.923 99.005 168.975 180.256 get() size=64kb, count=10000, loop=1000
  • 実験環境• Java: In-Memory CacheはGuavaのCacheBuilderを 使用• MacBook Pro Retina, Mid 2012• 2.3 GHz Intel Core i7• 8 GB 1600 MHz DDR3• https://github.com/chimerast/cachebench
  • In-Process Cacheで できないこと• 本当に大規模なキャッシュ(数TBとか)• セッションオブジェクトの共有• forkするようなcgiとかphpとか
  • まとめ• それほんとにmemcachedがマッチして るの?• メモリなんて最近安いんだから、 APサーバにメモリを64GBでも積んで In-Process Cacheを使えばいいじゃない