Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
失敗LT祭! 〜俺の話を聞いてくれ〜 メモリだいじに! / 20190220_hedgehog...
Search
FORTE
February 20, 2019
Technology
0
200
失敗LT祭! 〜俺の話を聞いてくれ〜 メモリだいじに! / 20190220_hedgehogs_miss_lt
FORTE
February 20, 2019
Tweet
Share
More Decks by FORTE
See All by FORTE
異夢同船〜異なる夢を持ちチームで作業する〜_サンプル/imudousen_sample
fortegp05
0
46
ラプラスの箱を開ける ~レトロゲームから学んだ工夫~/retro_games_any_03_01
fortegp05
1
51
ジモtechVol1_LT_フルリモート"され"力/jimotech_lt_1
fortegp05
0
45
超入門!サーバーサイドKotlin/sski1
fortegp05
0
170
MicronautでgRPCに入門!実践!サーバーサイドKotlin/sskm2_sample
fortegp05
0
76
アンチパターンから学ぶコミュニケーション/lcap_sample
fortegp05
0
160
Micronautで入門!実践!サーバーサイドKotlin/sskm1_sample
fortegp05
0
98
ITエンジニアとして生きる技術/tlie-sample
fortegp05
0
410
入門!実践!Kotlin Compose Multiplatformでデスクトップアプリ開発! / cmd_01_sample
fortegp05
0
610
Other Decks in Technology
See All in Technology
#22 CA × atmaCup 3rd 1st Place Solution
yumizu
1
130
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
320
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
380
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
1
1.7k
Agentic AIが変革するAWSの開発・運用・セキュリティ ~Frontier Agentsを試してみた~ / Agentic AI transforms AWS development, operations, and security I tried Frontier Agents
yuj1osm
0
210
「違う現場で格闘する二人」——社内コミュニティがつないだトヨタ流アジャイルの実践とその先
shinichitakeuchi
0
150
2025年 山梨の技術コミュニティを振り返る
yuukis
0
150
製造業から学んだ「本質を守り現場に合わせるアジャイル実践」
kamitokusari
0
430
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
180
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
Typedesign – Prime Four
hannesfritz
42
2.9k
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
Automating Front-end Workflow
addyosmani
1371
200k
First, design no harm
axbom
PRO
1
1.1k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
Rails Girls Zürich Keynote
gr2m
95
14k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
230
How STYLIGHT went responsive
nonsquared
100
6k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Transcript
失敗LT祭!〜俺の話を聞いてくれ〜 メモリだいじに! 2019/02/20 FORTE(@FORTEgp05)
自己紹介 FORTE (フォルテ) SIer → Web系 → スマホアプリ開発者。 2
今日話す内容 いのちメモリだいじに! Webシステム開発におけるメモリによる失敗話 3
メモリだいじに! ・SIer時代に新人でアサインされた案件。 2007年当時のお話。 ・業務向けのWebシステム開発に途中から参加。 ・イントラネットのみ公開のWebシステム。 200人ほどの部署向け。 4
システム構成概要 5 IE6 HTML JavaScript Java Servlet Apache Tomcat PostgreSQL
7.x
当時発生していたふたつの問題 6
当時の問題①データ取得が遅い 7 とある機能「機能A」でDBからデータ取得するのが遅い…。 原因はデータ量が多いため。 \ユックリ/
当時の問題②データ量が多すぎてIEが死ぬ 8 機能Aの検索条件によってはデータ量が多すぎてIE6が死ぬ。 (真っ白のままフリーズする) オオスギ
当時の問題 9 閃いた! DBが遅いなら、サーバーのメモリにデータを積めば 良いんじゃね!? 先輩
解決策 10 メモリ ServletContext.setAttribute()
解決策 11 取得が遅いデータは あらかじめメモリに積んでおく
解決策 12 DBから取得しないので早い! \ハヤーイ/
やったー!解決した! 13
やったー!解決した!んなわきゃない 14
失敗… 15 ・DBが遅いのはまずDBでチューニングすべき 当時は技術力不足で無理だった…。
失敗… 16 ・DBが遅いのはDBでチューニングすべき 当時は技術力不足で無理だった…。 ・メモリに対する影響を軽視しすぎ
失敗… 17 ・DBが遅いのはDBでチューニングすべき 当時は技術力不足で無理だった…。 ・メモリに対する影響を軽視しすぎ 4GBのサーバーに500MBほど保存していた…。 \メモリ4GB/
失敗… 18 ・IEが死ぬ問題は解決できてない ことあるごとにお客さんに怒られてました…
さらなる失敗 19
さらなる失敗 20 機能Aと同じような仕様の機能が3つ増えた。
さらなる失敗 21 機能Aと同じような仕様なので、 何も考えずに機能Aと同じような実装をした。
さらなる失敗 22
さらなる失敗 23
さらなる失敗 24
さらなる失敗 25 メモリ4GBのサーバーに、 500MB×4機能分の2GBのデータが常駐。
さらなる失敗 26 アクセス負荷でよくサーバーが応答不能に… メモリナイ
当時の問題②データ量が多すぎてIEが死ぬ 27 機能Aの検索条件によってはデータ量が多すぎてIE6が死ぬ。 (真っ白のままフリーズする) 最初の問題2つ目も解決してない オオスギ
お客さん「おれは怒ったぞー!!!!」 28
根本対策 29 機能Aに関しては全く新しい仕組みで実装し直した。 フロント、バック、DB、バッチ処理全てを一新。 これを半年で実施。
根本対策 30 機能Aに関しては全く新しい仕組みで実装し直した。 フロント、バック、DB、バッチ処理全てを一新。 これを半年で実施。 \デスマーチ/
失敗からの教訓 ・問題解決のためではなくユーザーのため 安易な手段に飛びつく前にちゃんと考える ・仮対策なら本対策するまで追い続ける ・メモリと性能は要注意 最近は技術の進歩でそこまででもないが、 少なくて早いに越したことはない 31
宣伝 Twitter:@FORTEgp05 Podcast:『aozora.fm』 お便り募集中! 技術書典6:「はじめる技術 つづける技術」を頒布予定! サークル「おからぼ」さんにて委託。 詳しくは#はじめる技術つづける技術にて! 32
おわり