書馨卡幫你省薪 2024個人購書報告 2024中圖網(wǎng)年度報告
歡迎光臨中圖網(wǎng) 請 | 注冊
> >>
高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件

出版社:電子工業(yè)出版社出版時間:2017-05-01
開本: 32開 頁數(shù): 240
中 圖 價:¥49.7(7.2折) 定價  ¥69.0 登錄后可看到會員價
暫時缺貨 收藏
運費6元,滿39元免運費
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件 版權(quán)信息

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件 本書特色

Scala是一種表達(dá)能力非常強的語言,能夠用非常簡潔的代碼表達(dá)豐富的業(yè)務(wù)含義。為了在生產(chǎn)上充分發(fā)揮Scala的能力,除了掌握其簡潔的語法外,理解Scala在性能上的特點和優(yōu)化點也是非常重要的事。本書通過解析一個金融領(lǐng)域高頻交易的實際例子,引領(lǐng)讀者掌握如何對Scala程序(以及一般JVM程序)進(jìn)行基準(zhǔn)測試和性能分析,從而找出瓶頸。隨后作者介紹了Scala語言、Scala標(biāo)準(zhǔn)庫(尤其是集合庫)以及Scalaz庫里解決相應(yīng)瓶頸的各種技巧。并行計算和分布式架構(gòu)作為性能調(diào)優(yōu)的重要手段,更是本書的重中之重,作者對Scala的并行計算和分布式架構(gòu)中存在的問題都進(jìn)行了充分的討論和講解,非常值得學(xué)習(xí)。本書適合已經(jīng)具有Scala編程基礎(chǔ)、能夠較好地使用Scala風(fēng)格代碼實現(xiàn)業(yè)務(wù)功能的程序員,作為在性能優(yōu)化方面的深造閱讀資料。

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件 內(nèi)容簡介

《高性能Scala》將為你武裝創(chuàng)建高性能Scala應(yīng)用所需的知識,從如何定義性能這樣的基礎(chǔ)知識開始,探索了Scala語言特性及函數(shù)式編程技術(shù),同時在所有主題上都密切關(guān)注著性能。
我們虛構(gòu)了一家名為MV的交易公司,你將作為一個新加入這家公司中的軟件工程師開始工作。隨著不斷學(xué)習(xí)降低延遲提高吞吐量的新技術(shù)和新方法,你將會把它們應(yīng)用到解決MV交易公司的業(yè)務(wù)問題上。學(xué)習(xí)完本書之后,你將得到充分的知識儲備,能使用函數(shù)式編程范式來解決真實世界中的問題,并能編寫可以用于生產(chǎn)環(huán)境的高性能Scala軟件。
√ 通過開發(fā)JMH基準(zhǔn)測試,以及使用Flight Recorder做profiling去分析JVM應(yīng)用的性能。
√ 發(fā)掘出Scala語言特性的使用場景及性能折衷的情況,了解急切集合及惰性集合。
√ 研究流式處理管道,探索使用事件溯源模式來提升性能。
√ 深入異步編程,使用Scala的Future和Scalaz的Task來榨取多核系統(tǒng)的性能。
√ 利用*終一致性的優(yōu)勢,結(jié)合無沖突復(fù)制的數(shù)據(jù)結(jié)構(gòu)(CRDTs)來設(shè)計無須同步的分布式系統(tǒng)。
√ 理解隊列對系統(tǒng)性能的影響,應(yīng)用Free monad模式來構(gòu)建具有高等級吞吐量的健壯的系統(tǒng)。

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件 目錄

前言 iX
1 高性能之路 1
性能的定義 2
高性能軟件 2
硬件資源 3
時延和吞吐率 4
瓶頸 5
性能總結(jié) 5
平均數(shù)的問題 6
百分位數(shù)來救場 8
指標(biāo)搜集 9
用基準(zhǔn)數(shù)據(jù)(benchmark)來衡量性能 9
通過Profiling來定位瓶頸 10
結(jié)合基準(zhǔn)測試和profiling 10
案例分析 11
工具鏈 11
小結(jié) 12
2 在JVM上度量性能 13
金融領(lǐng)域一瞥 13
意外的市場波動毀掉了利潤 16
重現(xiàn)故障 17
吞吐量基準(zhǔn)測試 17
時延基準(zhǔn)測試 20
定位瓶頸 25
微基準(zhǔn)取得大進(jìn)步 42
小結(jié) 49
3 釋放Scala的性能 51
值類 52
字節(jié)碼表示 52
性能考慮 54
標(biāo)記類型——值類的一種替代品 55
專門化 57
字節(jié)碼表示 58
性能考慮 60
元組 65
字節(jié)碼表示 65
性能考慮 66
模式匹配 68
字節(jié)碼表示 68
性能考慮 70
尾遞歸 75
字節(jié)碼表示 78
性能考慮 79
Option數(shù)據(jù)類型 83
字節(jié)碼表示 83
性能考慮 84
案例研究——性能更高的Option 85
小結(jié) 89
4 探索集合API 91
高吞吐量系統(tǒng) - 改進(jìn)指令簿 91
理解過去實現(xiàn)上的折中 - list實現(xiàn) 92
當(dāng)前的指令簿 - queue實現(xiàn) 101
通過惰性計算來提升取消操作的性能 104
歷史數(shù)據(jù)分析 114
滯后時序收益率(lagged time series returns) 114
處理多個收益率序列 122
小結(jié) 127
5 惰性集合及事件溯源 129
提升用戶報表生成速度 129
深入報表生成代碼 130
使用視圖提速報表生成 133
視圖的注意事項 141
打包報表生成結(jié)果 145
重新思考報表架構(gòu) 146
Stream概覽 149
事件變換 152
構(gòu)建事件源管道 158
馬爾可夫流式鏈 162
流的注意事項 166
小結(jié) 169
6 Scala的并發(fā) 171
并行回測(backtesting)策略 171
探索Future 173
Future和crazy ideas 177
Future使用時的考量 179
提交執(zhí)行妨礙性能 185
處理阻塞調(diào)用和回調(diào) 188
ExecutionContext和阻塞調(diào)用 189
用Promise轉(zhuǎn)化回調(diào) 193
受命進(jìn)一步提升回測性能 196
介紹Scalaz Task 197
用Task為交易日模擬建模 204
總結(jié)回測 209
小結(jié) 210
7 高性能架構(gòu) 211
分布式自動化交易員(Distributed automated traders) 211
分布式架構(gòu)概述 212
**次嘗試分布式自動化交易系統(tǒng) 212
引入CRDT 214
CRDT和自動化交易系統(tǒng) 219
當(dāng)余額不足時 220
免費交易策略性能提升 222
為交易策略做基準(zhǔn)測試 222
無界隊列(unbounded queue)的危險 225
應(yīng)用背壓(back pressure) 226
應(yīng)用負(fù)載控制策略 227
Free monad 233
小結(jié) 240
展開全部

高性能Scala-用Scala和函數(shù)式編程范式開發(fā)高性能軟件 作者簡介

  楊云,網(wǎng)名大魔頭,Thoughtwoks資深咨詢師,Scala多年實踐者及布道者。發(fā)表有多篇Scala相關(guān)博客及文章,譯有多部Scala技術(shù)專著。博客:http://blog.damotou.info。Vincent Theron是一個擁有 9年工作經(jīng)驗的專業(yè)軟件工程師。他在 6年前發(fā)現(xiàn)了 Scala并將之應(yīng)用于構(gòu)建高伸縮性、高可靠的應(yīng)用。他在多個行業(yè)設(shè)計軟件來解決商業(yè)上的問題,包括在線博彩、金融交易,以及昀近的廣告行業(yè)。在巴黎東部 Marne-la-Vallée,Vincent獲得了計算機科學(xué)及軟件工程碩士學(xué)位。他和妻子、孩子以及兩只毛茸茸的貓一起在波士頓區(qū)域生活。
  感謝在 Packt出版社的每一個人,是你們的努力工作才能讓這本書面世。感謝柴塔尼亞-耐爾,帶著這個出書項目找到我。感謝 Nikhil Borkar,一路上給我提供指引。感謝 Michael Diamant,我的合作作者,我的同事,同時也是朋友,感謝你給這本書帶來的知識以及充滿靈感的每一天。感謝我的父母,感謝你們的愛和支持,以及你們給我買的第一臺電腦。昀后,感謝我的妻子,Julie,感謝你一直的鼓勵,感謝你給了我一個這么絕妙的兒子。
  Michael Diamant是一個專業(yè)的軟件工程師,熱衷于函數(shù)式編程。他在 2009年開始自己的事業(yè),專注于 Java和面向?qū)ο蟮木幊谭妒。?2011年學(xué)習(xí) Scala之后,他專注于使用 Scala和函數(shù)式編程范式來構(gòu)建金融交易和廣告領(lǐng)域的軟件系統(tǒng)。邁克爾畢業(yè)于伍斯特理工學(xué)院,居住在波士頓區(qū)域。
  我能在這本書里面分享的知識來源于他人在我一生中給予的支持和教導(dǎo)。我想要特別感謝我的同事文森特,感謝你推動我付出這些努力,感謝所有在一起的時間,讓我們可以發(fā)展這些書中的想法。我所有的現(xiàn)在和之前的同事都幫助我提高了工程技術(shù),沒有你們慷慨地分享你們的所學(xué),我將不可能編寫這本書。除了 Vincent,我還想特別提及一些我覺得尤其想感謝的同事:Dave Stevens、Gary Malouf、Eugene Kolnick和 Johnny Everson。感謝我的父母和兄弟,你們支持我,將我培養(yǎng)成現(xiàn)在的我。我尤其想深深地感謝我的女友 Anna在整個寫書過程中給予我的支持。昀后,同樣的感謝送給 Packt出版社,在你們的幫助下我們寫了我們的第一本書。 關(guān)于審閱者
Nermin Šrifovi?是一個從 2009年開始就熱衷 Scala的人,他從 2011年開始在專業(yè)領(lǐng)域應(yīng)用 Scala。在大部分工作生涯中,他專注于使用 JVM技術(shù)構(gòu)建后端平臺。昀近,作為 Pingup的研發(fā)總監(jiān),他正在一個本地化服務(wù)預(yù)訂系統(tǒng)上領(lǐng)導(dǎo)開發(fā)工作。
Nermin是一個哈佛大學(xué)延伸教育學(xué)院的導(dǎo)師,他在那里與人合作教授 Scala并行編程的課程,他還在多個學(xué)術(shù)會議上發(fā)表了演講。
作為一個 Scala社區(qū)的活躍會員,Nermin組織了波士頓區(qū)域的 Scala愛好者群,同時他也是中東 Scala座談基金會一員。他是 Scala Puzzlers一書的合作作者,Scala解惑網(wǎng)站的合作創(chuàng)建者。
Nermin擁有康奈爾大學(xué)計算機科學(xué)碩士學(xué)位,他感興趣的領(lǐng)域包括分布式系統(tǒng)及伴隨著的并行,響應(yīng)式和函數(shù)式編程。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
返回頂部
中圖網(wǎng)
在線客服