我试图量化一个小的Java应用程序执行相同的进程multithreading与多进程的内存占用差异。
我所有的testing都在Linux下。
运行multithreading时,确定每个线程的整体占用空间和额外开销相对比较容易。 在运行单线程的过程中,根据pmap,JVM具有较大的占用空间(200-300M虚拟空间)。 如果我运行同一个应用程序的多个副本,则会看到内存占用x N,并且没有任何java代码在进程之间共享。
我已经被告知,由于Java代码是字节码,不可执行,所以它不会像在C语言中那样在进程之间共享代码。 不过,后来我被告知,它可能会使用写入时复制技术来达到同样的效果。 如果我使用pmap,它只是告诉我该进程的占用空间,并不表示可以与另一个进程共享多less。
使用flex从Windows共享播放video
在Windows 8中使用什么版本的RDP?
在窗口中查找内存映射对象的列表
如何确定用户input是否是windows net share的有效共享名?
共享库重定位R_X86_64_PC32错误
所以问题是,我将如何确定多less数据通过进程间复制写入共享?
Windows桌面共享api:如何共享一个应用程序
在Linux中查找共享库的加载地址
当多个用户同时访问时,多less程序/类的拷贝被加载到内存中
程序之间实际上共享内存,Windows编程语言
Windows文件共享:为什么有时新创build的文件在一段时间内不可见?
在正确配置的非嵌入式Linux系统上,为什么要关心内存占用?
如果你有答案,会有什么不同?
这将进一步确定的内存布局的Java程序和页面内的数据。 所有这些都可以从发布到发布。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。