V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  industryhive  ›  全部回复第 16 页 / 共 19 页
回复总数  373
1 ... 8  9  10  11  12  13  14  15  16  17 ... 19  
2021-10-26 09:48:16 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@canyue7897 云平台还是嵌套了一层,和现在的操作系统没什么区别。jvm 直接运行在裸机上,可以抛弃传统的操作系统内核那一套,效率肯定是更高的,而且可能会出现数量级的差距。
2021-10-25 19:26:14 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@chtcrack 老哥打这么多字不容易,回复你一下吧,拓展下你的知识边界。

“如果 Java 性能真的接近 C++,游戏引擎就会用 Java 写吗?显然仍然不行,因为到了性能性命攸关的领域,一点点性能差距都是至关重要的”,这句话是错的,数据库都可以用 java 写,游戏引擎当然也可以,恐怕还更简单点。现在 java 做游戏存在一个比较严重的缺陷,就是 java 的内存模型非常不适合游戏这种需要大量小对象的领域,java 要做到和 C++一模一样的的内存布局非常麻烦,所以游戏领域 java 出现的很少。不过 java 和 jvm 正在快速发展,project valhalla 也就是 java 的自定义值类型正在快速推进,一旦正式发布,java 将有能力轻松实现像 C++一样的内存布局,我预计到时候会涌现出一批 java 游戏引擎。
“机器语言效率最高,上来是汇编语言,再上来是 c,c++,linux,Windows 底层都是用 c/汇编写的,java 是 c 语言开发的,你可以用 c 写一个 javaxx,但是你不能用 java 写一个性能更好的 cxx,能不能明白?”你这段话是完全错误的。所有的编程语言,只要他是编程语言,那就一定是实现图灵完备的。你知道图灵完备是什么意思吗?就是说,c/c++/java/python 等等在数学上都是等价的,c/c++能做到的 java 都可以分毫不差的做到。并且由于 java 拥有运行时 JIT 的支持,java 的理论性能上限比 c/c++等只有 AOT 的语言高。你懂 AOT 和 JIT 的区别吗? Windows 和 Linux 确实是用 C 写的,但是这种客户端操作系统 java 也不是不能写。我给你推荐一篇文章:一种新的操作系统设计 http://www.yinwang.org/blog-cn/2013/04/14/os-design 。知乎上也有对这篇文章的讨论:如何看待王垠对于内存管理的理解? - 灵剑的回答 - 知乎
https://www.zhihu.com/question/484194993/answer/2098751994
。总的思想就是让 JVM 直接运行在裸机上,去掉操作系统的冗余,这样 JVM 就是操作系统,极大的提高程序的运行性能。其实这样的想法我很早之前也想到的,现在全世界几十亿台安卓设备,底层都是 Linux 系统,然后在 Linux 之上运行了 jvm ,在 jvm 之上再运行安卓应用。我就想为什么不直接运行 jvm ,去掉 Linux 呢?这对于安卓设备来说运行效率会极大的提高。我不知道现在有没有公司在做这方面的研究,但我知道,如果 SUN 公司还在的话,一定会很乐意这么做的。
最后,你对 java 的理解几乎为零,jvm 有很多实现,现在应用最广泛的 Hotspot 是用 c++写的。但是前两年 Oracle 搞出了个新玩意,叫 GraalVM ,这是一个完全由 java 实现的通用高性能跨语言虚拟机,用 java 实现的 GraalVM 性能比用 c++实现的 Hotspot 高大概 4%~20%。怎么样?你知道为什么 java 写的 jvm 为什么比 c++写的 jvm 性能高么?恐怕这已经突破了你的想象力极限了吧?
2021-10-23 16:57:14 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@penguinWWY 你既然做 Compiler ,那么把你的工作成果晾一下吧,有多少性能提升,如何实现的,相比于其他编译器有哪些突破,发了哪些论文。你否认 AOT 的理论优化上限比 JIT 低,谁讲的?哪篇论文?出处贴一下。MPGO 是怎么生成 NGen 二进制映像的?和 native PGO 优化有什么区别? Native PGO 怎么摆脱 training run 的局限? Managed profiler 通过动态插桩收集 profile 的过程是怎么样的?你们是怎么实现让 JIT 编译器生成收集 profile 的代码,收集细粒度 profile 并在后续进行高度优化的编译这类问题,麻烦给个出处,学习一下,如果做到的
2021-10-23 10:09:39 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@penguinWWY 看来你这 Compiler 做的不行啊,连这种理论上已经定性的东西都不知道,还做什么 Compiler 。。。
2021-10-22 11:20:50 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@lostpg 小型系统不仅受制于单机资源,像 Windows 、Linux 等软件应用范围一般也包括个人主机,也就是说这类软件都必须能够满足在普通个人用户的电脑上安装运行,而家用电脑的性能是非常有限的,所以也会限制这种小型系统的规模。而有的企业级服务器就没有这个限制,CPU 可能有几百核,内存可能有几个 TB,能运用这种资源的系统也是大型系统,就比较适合用 java 做。
另外,java 的确在精确控制内存方面存在劣势,但是并不是 java 就不能“精确控制内存”,你可能不知道 java 是可以选择手动关闭 GC 的,你也可能不知道 java 是可以使用 unsafe 手动分配和释放内存的。当然在内存管理方面一般是自己构建内存池,真要是用 C/C++写高性能程序也不会有人傻到用 malloc/free 这种动态内存分配手段吧?
2021-10-22 09:43:43 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@GeruzoniAnsasu 所以汇编和 C 语言一样,只适合用来开发一些小型软件。
2021-10-22 09:42:00 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@Leviathann 零开销抽象虽然不是 java 的理念,但 java 也不是不能做到零开销抽象。javac 只是个前端编译器,最主要的优化都在后端 C1/C2 进行,JIT 的作用就是用来进行运行时优化的。
2021-10-22 09:39:37 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@lostpg 目前来看 JIT 的确还有非常大的发展潜力,这也是为什么我说越大型的系统越适合用 java 开发,因为越大型的系统 JIT 能发挥的作用就越大。目前来看 cpp/rust 等用来编写一些小型系统仍然存在某些优势,但是现在 java 也不是不可以做这些事,而且很多时候还比 c/cpp 做的更好。比如分布式内存计算平台 apache ignite 性能比 redis 更好并且功能还比 redis 多,分布式数据库 Casandra 性能比 MongoDB 好。还有前几个月开源的商用数据库 StarRocks 就号称比 ClickHouse 好,只不过 StarRocks 选用的开源协议受到了很多人抨击。另外,java 和 jvm 平台也在迅速发展,未来 java 的缺陷都会被一一克服。
2021-10-22 09:31:32 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@wangxn 预编译是 AOT,AOT 的性能优化上限不如 JIT,JIT 的存在目的就是获取运行时信息进行比 AOT 更高程度的优化。java 也可以进行 AOT 编译,但是 java AOT 之后就不能 JIT 了,以后可能会实现先 AOT 编译再 JIT 运行。
2021-10-21 20:48:58 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@agagega PGO 的优化上限还是不如 JIT 。目前来看 java 并没有明显不可克服的缺陷,cpp 能做的 java 都可以做,但是 java 的 JIT 却是 cpp 没有的(当然 cpp 可以自己写一个 JIT 编译器,这样 java 和 cpp 就持平了,但是通过 JIT 运行的 cpp 还能不能叫做 cpp 就见仁见智了)。
2021-10-21 20:32:59 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@lostpg AOT 性能优化上限不如 JIT,并且 java 也不是不能 AOT,现在 java 只能 AOT 和 JIT 二选一,但是说不定未来哪一天 java 可以实现先 AOT 编译再 JIT 运行。
2021-10-21 18:33:18 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@lechain 像 Windows 、Linux 这种客户端软件很可能是 C/C++能开发的最大的单体软件,规模再大的软件很可能就不适合了。
2021-10-21 17:36:12 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
@Clarke c/c++/rust 适合写小型系统,越大型的系统越不适合使用它们写。最关键的原因是 c/c++/rust 没有 JIT,在运行效率方面比不上有 JIT 的语言,比如 java
2021-10-21 17:32:16 +08:00
回复了 onice 创建的主题 程序员 为什么没有一种万能且通用的编程语言呢?
java,java 可以写后端,可以写客户端,可以写中间件(数据库、搜索引擎),可以写大数据平台,可以写嵌入式,未来也可能写操作系统,也可以作为查询语言替代 sql 。
2021-04-17 11:25:05 +08:00
回复了 luojiu 创建的主题 职场话题 offer 求比较,北京, Java , 2 年+
@beexu 能否留个联系方式?交流一下
2021-04-17 10:59:13 +08:00
回复了 luojiu 创建的主题 职场话题 offer 求比较,北京, Java , 2 年+
楼主能不能留个联系方式?我之前也是在济南,也是 19 年毕业,在济南的时候薪资也和你差不多。。。不过我半年前来的北京。真的想有一个小伙伴聊一下工作生活方面的话题。
2021-04-09 11:49:22 +08:00
回复了 idrunk 创建的主题 PHP 本人基于 PHP8 开发了一款网络编程框架,欢迎大家尝试,感谢标星
支持,先 star 一下!
1 ... 8  9  10  11  12  13  14  15  16  17 ... 19  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2774 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 11:20 · PVG 19:20 · LAX 03:20 · JFK 06:20
Developed with CodeLauncher
♥ Do have faith in what you're doing.