首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python的-xms和-xmx

Python的-xms和-xmx
EN

Stack Overflow用户
提问于 2019-01-27 05:55:43
回答 3查看 8.8K关注 0票数 1

相关问题:What are the Xms and Xmx parameters when starting JVMs?

为什么Java程序允许您指定-xms和-xmx?作为一个开发人员,为什么我需要知道/关心我的程序会使用多少cpu/mem呢?

或者同一个问题在不同的角度,为什么不让Python指定这些类型的选项呢?(在Python工作了5年,从来不需要这样做)

这与Python被解释语言和Java是JVM的某种字节码来机器语言有关吗?

或者可能与垃圾收集的方式有关-- Java需要更加谨慎地对待内存消耗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-27 06:04:19

并不是所有的操作系统都以同样的方式向您的运行过程传递内存“压力”,这意味着几乎没有。Java允许您对其内存使用设置一个明确的限制。Python、Go等都有一种比较激进的收集内存的方法。

这是由cgroup复杂的,用于实现Docker和Kubernetes下的容器,这可能会导致malloc()返回NULL,但会导致将信号发送到进程以终止它。

JVM为您提供了一种(通过-Xmx)控制虚拟机内存使用的方法,因为其他系统只是希望它们适合虚拟机的使用。Docker容器中的Java是非常容易管理的,因为Python或Go更容易命中。这些都是“好的”技术,但对容器的限制应该(我希望)推动改进垃圾收集“努力”的表达方式。*\

这感觉就像一个没有答案的人,对此我感到不满意。你可以阅读这篇文章,直到有人发表一些更好、更高票的文章。我会删除这个一旦几个不可避免的暴怒选票出现。;)

票数 4
EN

Stack Overflow用户

发布于 2019-01-27 06:44:16

我认为这是一个关于java设计模式的问题。这真的很奇怪,因为java通常是唯一严格限制内存使用的。而且它也是唯一一个检查异常的。

我相信这些都是因为java的设计者想要设计一种真正适合企业的语言。他们正在尽最大努力确保安全。

以下是关于内存使用限制的答案:https://stackoverflow.com/a/3358383/5588279

对于被检查的异常情况,这是一样的。设计人员希望迫使开发人员处理每一个可预期的异常。

好吧,很难说这是不是好。虽然我不喜欢这个设计,因为设计师似乎把我当作一个菜鸟,但我不得不承认,它确实使java更安全.也许吧?

票数 2
EN

Stack Overflow用户

发布于 2020-09-10 10:15:18

  1. 我看到Python有三代,即第0代、第1代和第2代,它们很像Java的年轻一代、老一代和perm一代(不是等同的,但也有些类似)。
  2. 如我们所知,开关为Java应用程序的内存使用设置了上限。
  3. 类似地,在Python中,虽然我没有看到一个等价的(或者可能有.)但是我看到gc.set_threshold设置了一个阈值(https://docs.python.org/3/library/gc.html)。
  4. 可以将阈值设置为微调,从而导致一个可接受的GCs‘(同样,频繁的GCs’不是很好,但归根结底是通过在Dev env中播放并获得适合一次自己应用的阈值来进行微调)。

只是一个想法!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54385468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档