训练超大规模图模型
|
Go 的 GC 只有少量的一些选项,即用于设置初始垃圾回收目标百分比的 GOGC 变量。而 Java 有 4 个不同的垃圾回收器,每个垃圾回收器都有大量的选项。 尽管 Java 和 Go 都被认为是跨平台的,但 Java 需要 Java 虚拟机(JVM)来解释编译后的代码,而 Go 是将代码编译成目标平台的二进制文件。但我认为,与 Go 相比,Java 对平台的依赖程度更低,因为 Go 每次都需要为新平台编译二进制文件。从测试和 DevOps 的角度来看,分别为不同的平台编译二进制文件非常耗时,并且跨平台的 Go 编译在某些情况下不起作用,尤其是在使用 CGo 时。而对于 Java,你可以在安装了 JVM 的任何地方使用相同的 jar。Go 需要的 RAM 更小一些,并且不需要安装和管理虚拟机。
反射。Java 的反射更方便、更流行也更常用,而 Go 的反射似乎更复杂。Java 是一种面向对象的编程语言,因此除原始类型之外的所有东西都被视为对象。如果要使用反射,可以创建一个类,并从类中获取所需的信息,如下所示: 1. 初遇 Go2017 年初,我接手了一个非常有趣的项目,一个用于监控和种植水培植物的自动化编程系统。项目的原始代码里包含了一个使用 CGo 开发的支持三个不同系统(Windows、MacOS 和 ARM)的网关。 因为对 Go 不熟悉,我一边学习,一边用它来实现功能。因为已有代码库的结构非常复杂,对我来说是难上加难。用 Go 开发的支持三种不同操作系统的程序意味着需要针对三种不同的系统进行部署、测试和运行维护。此外,代码采用了单例设计模式,导致系统严重相互依赖,难以预测会出现什么问题,而且难以理解。最后,我选择使用 Java 来实现新版本,但最终也变得非常丑陋和令人困惑。 在加入 Spiral Scout 后,我尝试停止使用 Java。我决定拥抱 Go,并尽可能多地使用 Go 来开发。我发现它是一种创新且全面的语言,我们的团队现在仍然每天在各种项目中使用它。 但是,与任何一门编程语言一样,Go 也有它的缺点,而且我不想撒谎——有时候我真的很想念 Java。 如果说我的编程经验教会了我什么,那一定是——软件开发没有银弹。我将在这篇文章里详细分享我使用一门传统语言和一门新语言的经历。 2. 简洁性Go 和 Java 都是 C 家族语言,所以它们具有相似的语法。因此,Java 开发人员可以很容易读懂 Go 代码,反之亦然。Go 不需要在语句末尾使用分号(';'),只有少数情况例外。对我来说,Go 的行分隔方式更清晰,更易读。 Go 和 Java 都使用了我最喜欢的功能之一,即垃圾收集器(GC),用来帮助防止内存泄漏。与 C++ 不同,C 家族的程序员需要处理内存泄漏问题。垃圾回收器是自动化内存管理的一个特性,减轻了程序员的负担。
Go 的 GC 并未使用“弱世代假设”,但它的表现仍然非常出色,并且 STW(Stop-the-World)的时间非常短。在 1.5 版中,STW 降得更多,并且很稳定,而在 1.8 版中,它降到了 1 毫秒以下。 由此看来,中国在云计算方面仍然与美国存在相当大的差距,但这也未必是坏事,因为这种现象恰好说明中国未来在这一方面的发展潜力很大。 即使是保守的Gartner也表示,中国市场发展较快,到2023年之后,中国落后美国将不到3年。而且基于此,全球多家咨询机构都非常看好中国云市场的发展。 从细分市场来看,中国的Iaas市场发展相当不错。2019年,中国公有云laaS市场规模达到453亿元,较2018年增长了67.4%,占公有云市场规模比重达66%,未来在新基建的影响下,预计laaS市场的各项数据会持续攀升。 此外,中国SaaS市场也有很大潜力。2019年,公有云SaaS市场规模达194.8亿元,同比增长34.2%。照这个增长趋势,加上云计算与AI、物联网、大数据等技术的高度融合,渗透率也将加速。 而今年的疫情是很好的契机,云办公、云上课、云就医等火热的领域都离不开云计算,庞大的需求会让云计算的实践能力充分得到提升,反过来对行业本身的发展也能起到极大的促进作用。
看似风光的中国云计算市场实际上还没那么风光,但照现在这情况看,想缩小与美国云计算市场的差距也并非难事。 (编辑:揭阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
