jjzjj

windows - 在 Windows 中通过常规文件传输 1-2 兆字节的数据 - 它比通过 RAM 慢吗?

我使用一个普通的旧文件将1-2MB的数据从一个进程传递到另一个进程。它比完全通过RAM慢得多吗?在回答是之前,请记住,至少在现代Linux中,当写入文件时,它实际上是写入RAM,然后守护进程不时将数据同步到磁盘。因此,如果进程A将1-2MB写入文件,然后进程B在1-2秒内读取它们,进程B将只读取缓存内存。它甚至比这更好,因为在Linux中,在将新文件写入硬盘之前有几秒钟的宽限期,因此如果文件被删除,它根本不会写入硬盘。这使得通过文件传递数据与通过RAM传递数据一样快。Linux是这样,Windows也是这样吗?编辑:只是为了提出一些假设:操作系统相当新-适用于台式机的WindowsXP

windows - 如何为每个 Windows 操作系统和我的应用程序拆分 RAM?

我想将PC中的RAM分成两部分;一半用于我的Windows操作系统,另一半用于我的应用程序的图像缓冲区。例如,我的桌面有32GB内存,我想为Windows分配16GB,并为我的应用程序访问分配另外16GB。Windows不会触及其他16GB,但我的应用程序应使用该16GB图像缓冲区。我知道如何在Linux中执行此操作,但我需要在Windows操作系统中执行此操作。我想我必须配置BIOS并需要为我的应用程序访问实现图像缓冲区的页面重映射Windows驱动程序。有什么好的方法吗? 最佳答案 您可以使用AddressWindowingEx

java - 如何在 64 位 Windows 7 上检索 RAM

我在具有24GB内存的64位WindowsVista上安装了一个Java桌面应用程序。我的程序只找到24GB中的4个。我正在使用获取RAMwmiccomputersystemgetTotalPhysicalMemory/format:list如果失败(以防他们没有WMI)我使用com.sun.management.OperatingSystemMXBeanbean=(com.sun.management.OperatingSystemMXBean)java.lang.management.ManagementFactory.getOperatingSystemMXBean();long

java - Stack 和 Heap 是否都存在于您的系统 RAM 中?

问题和题目差不多,栈和堆是否一直存在于内存中?假设Windows是相关机器的操作系统。另外,如果上述问题的答案是肯定的,是否可以告诉JVM在不同的位置创建特定的应用程序Stack和Heap,例如外部microSD卡?或者只是将默认堆栈/堆创建位置设置为RAM以外的某个位置? 最佳答案 嗯,它们可能不会在所有时间都在RAM中。栈和堆只是分配在内存中的数据结构。当您的程序实际使用CPU时,它们都将(至少部分)存在于RAM中。但是,当程序不运行时,操作系统可能会换出堆栈和堆所在的页面。然后可以将部分(或全部)堆栈和堆写入磁盘。我猜你无法告

java - 有没有办法强制程序留在 RAM 中

我可以编写一个程序来启动其他留在物理RAM中的小程序并避免交换到磁盘吗?我很好奇Linux和Windows的答案。 最佳答案 POSIX系统可以使用mlock/munlock将内存锁定到RAM中.在Windows上,您可以使用VirtualLock完成同样的事情。.不过,在几乎所有情况下,您都希望让操作系统处理这类事情。编辑:详细来说,如果您想要这样做的原因是性能或响应能力,不要。您想要这样做的唯一原因几乎是阻止密码或加密key意外写入磁盘,攻击者可能会在磁盘上获取它。 关于java-有

linux - 当计算机从 sleep 模式唤醒时,它是否使用与以前相同的物理地址?

当计算机从sleep模式唤醒时,它是否使用与以前相同的物理地址?只是好奇这个。我假设它可能是因为它暂停到内存中。它是否也可能依赖于操作系统?如果是这样,它如何适用于特定操作系统,例如Windows或Linux。还有,休眠模式呢? 最佳答案 RAM本身保持在同一个位置(当然,假设没有人热插拔任何内存)-它的组织由BIOS或非基于PC的系统使用的任何启动过程决定。术语“sleep”通常表示“暂停到RAM”,这基本上意味着处理器停止运行。由于处理器是唯一[1]可以重新安排内存中的内容的东西,并且它在sleep期间不通电,因此RAM很可能在

linux - 用于获取 RAM 信息的 Windows API

Windows中是否有任何API来获取RAM内存信息,例如...总RAM、可用RAM、共享RAM、缓冲RAM、总交换空间大小)我查看了msdnmeorymangementAPI,但找不到太多信息。任何人都可以在这方面指导我。 最佳答案 GlobalMemoryStatusEx函数提供了那种高级信息。请参阅MEMORYSTATUSEX的文档用于描述报告内容的结构。 关于linux-用于获取RAM信息的WindowsAPI,我们在StackOverflow上找到一个类似的问题:

WPF ListView RAM 大幅增加

我有一个包含100个项目的列表。我必须每1分钟刷新一次列表。每次我更新列表-RAM都会增加。privateBindableCollection_list=newBindableCollection()正如我所说,我必须每1分钟更新一次我的列表,所以我有一个每1分钟触发一次的事件。privatevoidOnListChanged(Listlist){_list.Clear();_list.Addrange(list);}事件发生后,RAM增加大约10-20mb。问题是RAM永远不会减少......看起来GC不收集垃圾。我尝试只更新显示前10个项目并只更新前10个项目,RAM仍在增加,但速

c++ - 是否可以与另一个进程共享现有的 RAM block ?

背景我有一个现有的32位应用程序,它分配了相当大的RAM(>128MB)block(通过malloc/new)并填充了一些图像数据(多帧值)。应用程序的插件可以通过SDK-API调用访问指向这blockRAM开头的只读指针(constchar*)。其他API调用可用于检索元数据,例如宽度/高度/位深度等。在SDK-API调用之外,我无法/几乎无法控制此应用程序。我还有另一个64位应用程序(在我的控制下),它需要上述数据作为输入,并且由于保证64位进程的上采样/3D体积重建需要更多的RAM。问题我希望与64位进程共享映射到32位进程中此现有指针的物理内存(最初不是通过CreateFile

c# - 为什么我的 WPF 应用程序在最小化一段时间后变慢了?

假设您有一个使用WPF开发的应用程序,当您运行该应用程序并将其最小化时,一段时间后(假设30分钟或更长时间),当您恢复该应用程序的窗口时,您发现它已卡住(或变慢))几秒钟。我的问题是为什么它变慢了,有什么办法可以解决吗? 最佳答案 这不是WPF的属性,它是虚拟内存的属性。基本上,现代操作系统试图让程序运行得尽可能快——但它们也允许同时运行多个程序,它们的所有内存都不能一次装进你那可怜的RAM。因此,当操作系统发现正在运行的程序需要分配新的内存页面,但RAM中已经装满页面时,它会将其中一个页面(最好是一段时间未使用的页面)踢到硬盘,进