如何将大型程序写入内存

发布于 科技 2024-07-27
13个回答
  1. 匿名用户2024-01-31

    这涉及到操作系统的内存分配机制,以及可执行文件的加载机制。 一般来说,在加载可执行程序时,操作系统只会加载第一页的内容(页面大小可以参考4K左右,因操作系统而异),然后根据程序执行的PC指针连续加载或跳过所需的**页面; 当内存不足时,一些“过时”的页面会从内存中换出,以便为以后的加载腾出空间。 也就是说,只要在程序执行所需的动态空间+程序线程数*页面大小中还有剩余空间,操作系统就可以使程序正确执行。

    在一些极端的嵌入式环境中,程序完全直接从片外缓冲区执行,需要更少的交换页。

  2. 匿名用户2024-01-30

    谁说程序本身必须写入内存?

    内存只加载程序运行所需的变量和机器码,然后实时加载此步骤的变量和机器码。 而且,Windows系统有记忆机制,很多暂时不用的数据都会重新释放,这样就可以使用大量的内存。

    可以简单理解为,大部分程序都写在硬盘上,只有变量和少数机器码,它们总是存储在内存中。

  3. 匿名用户2024-01-29

    你可以参考这个。

  4. 匿名用户2024-01-28

    1.如果内存大于4G,建议使用64位系统,因为32位系统不能支持4G以上的内存。

    2.如果内存使用率不高,可以设置和修改。

    3. 在运行中输入cmd,在打开的黑框页面输入msconfig,出现系统配置页面。

    4. 单击“指南”选项卡。

    5. 打开高级选项。

    6. 选择处理器数量,然后选择最大数量。

    7.检查最大内存并将数字调整为最大可调数字。

    8. 最后,保存并重新启动。

  5. 匿名用户2024-01-27

    它不像上面的那么复杂。

    define x 需要写入文件的字节数。

    char *p;

    p=指向起始地址;

    file *fp;编写文件。

    fopen();里面保存了。

    fwirte(p,sizeof(char),x,fp);

    fclose()

  6. 匿名用户2024-01-26

    事实上,这个问题不能用这么简单的方式来表述。 下面是一个简单的实现,假设文件大小很小。

    char *buffer;定义缓冲区,pt=指向起始地址。

    memcpy(buffer,pt,x);x是每次读取的大小,小可以一次读取! 不要大于缓冲区

    file fp;编写文件。

    fopen();里面保存了。

    fwirte(buffer,sizeof(char),x,fp);

    pt+=x;指针向后移动。

    然后循环读,写! 当它结束时判断! 呵呵! 基本上就是这样!

  7. 匿名用户2024-01-25

    直接定义一个非常大的数组。

  8. 匿名用户2024-01-24

    一脚踹开身后的小学生,甩了甩衣袖,大步走出了门。

  9. 匿名用户2024-01-23

    刷新数据流尝试,;

  10. 匿名用户2024-01-22

    这是你写的有问题的东西,有些对象使用后没有释放,最后导致越来越多的卡住。

  11. 匿名用户2024-01-21

    您是否在不写入的情况下释放系统资源**?

  12. 匿名用户2024-01-20

    最主要的是你的缓冲区太大了,4*1024*1024是4g。 此缓存有点大。 事实上,您可以使用 1024 或 4096。

  13. 匿名用户2024-01-19

    你把这么大的文件读进内存,你当然受不了,你去网上搜索看看怎么分割块,或者把内存拆分读取!

相关回答
6个回答2024-07-27

手机上占用最多内存的内容因人而异,具体取决于您的使用习惯和手机上安装的应用程序。 以下是一些可能占用大量内存的常见元素: >>>More

8个回答2024-07-27

Apple 手机没有存储卡。 如果你有存储卡,这意味着你买了一个山寨卡。 >>>More

25个回答2024-07-27

在内存方面,可以通过管家清洁加速功能进行优化: >>>More

16个回答2024-07-27

2G内存,XP系统或Win7 32位。

4G或以上,安装Win7 64位Win8 Win10 >>>More

6个回答2024-07-27

在“手部设置 - 应用程序管理 - 全部”中,单击每个应用程序,然后选择“移动到 SD 卡”。 >>>More