云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_国内代理服务器ip_限时特惠

小七 141 0

好的序列码!=良好的并行代码!=良好的并发代码

您编写的代码通常是由您为之编写的环境塑造的。在一个环境中什么是好的代码往往是非常糟糕的代码另一个。一个环境之间的主要区别在于并行化和/或并发。只是为了让所有人都站在同一页上,下面是我将这些短语的目的平均值:序列码是在单个核心上执行其核心逻辑的代码,所以这个问题需要以线性方式解决并行代码是在多个核心上并行执行其核心逻辑的代码,每个核心处理同一问题的较小部分并发代码是在多个核心上执行的代码,其中每个核心可以处理完全无关的问题优化性能要求每个环境的技能集不同要编写性能良好的顺序代码,需要将执行的操作总数最小化,因此您可以使用巧妙的技巧将以前计算的结果与并行和并发代码重复使用,性能损失是核心间的通信,因此它实际上可能在墙时间上更快,要重新计算部分结果,而不是与其他核心同步以获得这些部分结果以编写性能良好的序列代码,您需要最大限度地利用处理器内存缓存线,因此您要尽量将存储使用量保持在最低限度。使用并行和并发代码,不可变对象可以在没有锁的情况下访问,因此它们可以由多个核心共享,因此即使它们往往更浪费空间,但实际上可以通过使用获得更高性能的代码他们。什么时候我们着眼于在一个有序的环境中解决问题,我们倾向于线性问题分解……因为它很适合执行环境和我们自己的思维模式……一次处理一件事,然后积累结果。在并行/并发环境中解决问题通常需要多方面的问题分解和结果的多向聚合…想想MapReduce和friends需要一些值得思考的东西!-斯蒂芬康诺利云蜂cloudbees.com斯蒂芬康诺利有近20年的软件开发经验。他参与了许多开源项目,包括Jenkins。Stephen是Jenkins项目的首批非Sun成员之一,他开发了天气图标。斯蒂芬住在爱尔兰都柏林,那里的天气图标特别有用。在Twitter和他的博客上关注斯蒂芬。