加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala与C进行分布式图形处理

发布时间:2020-12-16 10:08:08 所属栏目:安全 来源:网络整理
导读:对于最短路径计算等图形的并行处理,Scala会胜过C吗?如果没有,它会慢多少(我假设Scala并发比C更容易编写,因为C没有标准的支持这样的事情) 我正在考虑学习Scala,既要学习一门新语言,也要学习并发支持.一旦我完成了,我正在考虑编写一个分布式图形库来练习Scala
对于最短路径计算等图形的并行处理,Scala会胜过C吗?如果没有,它会慢多少(我假设Scala并发比C更容易编写,因为C没有标准的支持这样的事情)

我正在考虑学习Scala,既要学习一门新语言,也要学习并发支持.一旦我完成了,我正在考虑编写一个分布式图形库来练习Scala,并且供我自己使用,但是如果C会更快并且更容易编写代码的好处不值得权衡,当性能是关注,我将不得不重新考虑这个任务.

解决方法

由于以下原因,我建议Scala over C:

>并发 – 正如你所说,JVM上有很好的并发支持,而Scala是一种很好的语言,可以从中受益.这并不是说您不能在C中编写并发代码,但您会发现它在Scala中更容易“开箱即用”.
>垃圾收集 – 许多图算法从垃圾收集和其他内存管理方法中获益匪浅.同样,JVM上的垃圾收集非常好(比C世界中的任何东西都要好),并且会使您的算法更容易编写.
> JIT编译器的质量 – 为了遍历堆内存中的对象图,我怀疑好的C代码和JVM JIT生成的代码之间会有明显的性能差异. JVM针对这种用法进行了大量优化.

当然,可以在C中编写性能极高的代码.在某些情况下,手动调整的C/C++代码可以胜过JIT(例如,当您可以证明不需要它们时,避免需要数组边界检查或空指针检查).或者你可以编写自己的内存分配器,专门用于图形处理,理论上可能胜过JVM中的通用垃圾收集器(如果你想试试这个,你最好是一个真正的天才……)

总的来说,用C语言编写所有内容会复杂得多,理论上可以实现的边际性能提升几乎肯定不值得付出努力.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读