買這商品的人也買了...
-
$880$581 -
$990$891 -
$580$452 -
$950$903 -
$780$616 -
$780$616 -
$654$621 -
$280$266 -
$580$452 -
$230Spark Cookbook (中文版)
-
$500$395 -
$580$458 -
$281用 Mesos 框架構建分佈式應用 (Building applications on Mesos)
-
$331優雅的 Ruby (Confident Ruby)
-
$199Spark Streaming:實時流處理入門與精通 (Learning real-time processing with Spark Streaming)
-
$360$284 -
$790$616 -
$450$356 -
$450$356 -
$590$460 -
$480$379 -
$390$308 -
$250Scala 謎題
-
$327愛上 micro:bit 零基礎玩轉 BBC micro:bit
-
$650$553
相關主題
商品描述
Scala是一種表達能力非常強的語言,能夠用非常簡潔的代碼表達豐富的業務含義。為了在生產上充分發揮Scala的能力,除了掌握其簡潔的語法外,理解Scala在性能上的特點和優化點也是非常重要的事。本書通過解析一個金融領域高頻交易的實際例子,引領讀者掌握如何對Scala程序(以及一般JVM程序)進行基準測試和性能分析,從而找出瓶頸。隨後作者介紹了Scala語言、Scala標準庫(尤其是集合庫)以及Scalaz庫里解決相應瓶頸的各種技巧。並行計算和分佈式架構作為性能調優的重要手段,更是本書的重中之重,作者對Scala的並行計算和分佈式架構中存在的問題都進行了充分的討論和講解,非常值得學習。本書適合已經具有Scala編程基礎、能夠較好地使用Scala風格代碼實現業務功能的程序員,作為在性能優化方面的深造閱讀資料。
目錄大綱
前言iX
1高性能之路1
性能的定義2
高性能軟件2
硬件資源3
時延和吞吐率4
瓶頸5
性能總結5
平均數的問題6
百分位數來救場8
指標蒐集9
用基準數據( benchmark)來衡量性能9
通過Profiling來定位瓶頸10
結合基準測試和profiling 10
案例分析11
工具鏈11
小結12
2在JVM上度量性能13
金融領域一瞥13
意外的市場波動毀掉了利潤16
重現故障17
吞吐量基準測試17
時延基準測試20
定位瓶頸25
微基準取得大進步42
小結49
3釋放Scala的性能51
值類52
字節碼表示52
性能考慮54
標記類型——值類的一種替代品55
專門化57
字節碼表示58
性能考慮60
元組65
字節碼表示65
性能考慮66
模式匹配68
字節碼表示68
性能考慮70
尾遞歸75
字節碼表示78
性能考慮79
Option數據類型83
字節碼表示83
性能考慮84
案例研究——性能更高的Option 85
小結89
4探索集合API 91
高吞吐量系統-改進指令簿91
理解過去實現上的折中- list實現92
當前的指令簿- qu eue實現101
通過惰性計算來提升取消操作的性能104
歷史數據分析114
滯後時序收益率(lagged time series returns) 114
處理多個收益率序列122
小結127
5惰性集合及事件溯源129
提升用戶報表生成速度129
深入報表生成代碼130
使用視圖提速報表生成133
視圖的注意事項141
打包報表生成結果145
重新思考報表架構146
Stream概覽149
事件變換152
構建事件源管道158
馬爾可夫流式鏈162
流的注意事項166
小結169
6 Scala的並發171
並行回測(backtesting)策略171
探索Future 173
Future和crazy ideas 177
Future使用時的考量179
提交執行妨礙性能185
處理阻塞調用和回調188
ExecutionContext和阻塞調用189
用Promise轉化回調193
受命進一步提升回測性能196
介紹Scalaz Task 197
用Task為交易日模擬建模204
總結回測209
小結210
7高性能架構211
分佈式自動化交易員(Distributed automated traders) 211
分佈式架構概述212
第一次嘗試分佈式自動化交 系統212
引入CRDT 214
CRDT和自動化交易系統219
當餘額不足時220
免費交易策略性能提升222
為交易策略做基準測試222
無界隊列(unbounded queue)的危險225
應用背壓(back pressure) 226
應用負載控制策略227
Free monad 233
小結240