您好,欢迎来到聚文网。 登录 免费注册
高性能Scala

高性能Scala

  • 字数: 352.8千字
  • 装帧: 简装
  • 出版社: 电子工业出版社
  • 作者: (法)Vincent Theron(文森特·西伦),(美)Michael Diamant(迈克尔·迪亚芒) 著 杨云 译
  • 出版日期: 2017-04-01
  • 商品条码: 9787121312373
  • 版次: 1
  • 开本: 其他
  • 页数: 252
  • 出版年份: 2017
定价:¥69 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
Scala是一种表达能力很好强的语言,能够用很好简洁的代码表达丰富的业务含义。为了在生产上充分发挥Scala的能力,除了掌握其简洁的语法外,理解Scala在性能上的特点和优化点也是很好重要的事。本书通过解析一个金融领域高频交易的实际例子,引领读者掌握如何对Scala程序(以及一般JVM程序)进行基准测试和性能分析,从而找出瓶颈。随后作者介绍了Scala语言、Scala标准库(尤其是集合库)以及Scalaz库里解决相应瓶颈的各种技巧。并行计算和分布式架构作为性能调优的重要手段,更是本书的重中之重,作者对Scala的并行计算和分布式架构中存在的问题都进行了充分的讨论和讲解,很好值得学习。本书适合已经具有Scala编程基础、能够较好地使用Scala风格代码实现业务功能的程序员,作为在性能优化方面的深造阅读资料。
作者简介
Vincent Theron是一个拥有 9年工作经验的专业软件工程师。他在 6年前发现了 Scala并将之应用于构建高伸缩性、高可靠的应用。他在多个行业设计软件来解决商业上的问题,包括在线博彩、金融交易,以及昀近的广告行业。在巴黎东部 Marne-la-Vallée,Vincent获得了计算机科学及软件工程硕士学位。他和妻子、孩子以及两只毛茸茸的猫一起在波士顿区域生活。
感谢在 Packt出版社的每一个人,是你们的努力工作才能让这本书面世。感谢柴塔尼亚-耐尔,带着这个出书项目找到我。感谢 Nikhil Borkar,一路上给我提供指引。感谢 Michael Diamant,我的合作作者,我的同事,同时也是朋友,感谢你给这本书带来的知识以及充满灵感的每。感谢我的父母,感谢你们的爱和支持,以及你们给我买的靠前台电脑。昀后,感谢我的妻子,Julie,感谢你一直的鼓励,感谢你给了我一个这么绝妙的儿子。
Michael Diamant是一个专业的软件工程师,热衷于函数式编程。他在 2009年开始自己的事业,专注于 Java和面向对象的编程范式。在 2011年学习 Scala之后,他专注于使用 Scala和函数式编程范式来构建金融交易和广告领域的软件系统。迈尔毕业于伍斯特理工学院,居住在波士顿区域。
我能在这本书里面分享的知识来源于他人在我一生中给予的支持和教导。我想要特别感谢我的同事文森特,感谢你推动我付出这些努力,感谢所有在一起的时间,让我们可以发展这些书中的想法。我所有的现在和之前的同事都帮助我提高了工程技术,没有你们慷慨地分享你们的所学,我将不可能编写这本书。除了Vincent,我还想特别提及一些我觉得尤其想感谢的同事:Dave Stevens、Gary Malouf、Eugene Kolnick和 Johnny Everson。感谢我的父母和兄弟,你们支持我,将我培养成现在的我。我尤其想深深地感谢我的女友 Anna在整个写书过程中给予我的支持。昀后,同样的感谢送给 Packt出版社,在你们的帮助下我们写了我们的靠前本书。
目录
前言 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 当前的指令簿 - queue实现 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

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网