请帮忙翻译一下,我实在是看不懂。!!!

aflash 2002-05-08 09:14:01
On Windows systems, the memory manager manages all dynamic memory allocations and deallocations in an application. The New, Dispose, GetMem, ReallocMem, and FreeMem standard procedures use the memory manager, and all objects and long strings are allocated through the memory manager.
On Windows, the memory manager is optimized for applications that allocate large numbers of small- to medium-sized blocks, as is typical for object-oriented applications and applications that process string data. Other memory managers, such as the implementations of GlobalAlloc, LocalAlloc, and private heap support in Windows, typically do not perform well in such situations, and would slow down an application if they were used directly.

To ensure the best performance, the memory manager interfaces directly with the Win32 virtual memory API (the VirtualAlloc and VirtualFree functions). The memory manager reserves memory from the operating system in 1-MB sections of address space, and commits memory as required in 16-KB increments. It decommits and releases unused memory in 16-KB and 1-MB sections. For smaller blocks, committed memory is further suballocated.
Memory manager blocks are always rounded upward to a 4-byte boundary, and always include a 4-byte header in which the size of the block and other status bits are stored. This means that memory manager blocks are always double-word-aligned, which guarantees optimal CPU performance when addressing the block.

The memory manager maintains two status variables, AllocMemCount and AllocMemSize, which contain the number of currently allocated memory blocks and the combined size of all currently allocated memory blocks. Applications can use these variables to display status information for debugging.
The System unit provides two procedures, GetMemoryManager and SetMemoryManager, that allow applications to intercept low-level memory manager calls. The System unit also provides a function called GetHeapStatus that returns a record containing detailed memory-manager status information.
以上是Delphi的Help中Object Pascal laguage中Memory manager overview的几段话。小弟的英语水平有限,实在是看不懂中间两段(To ensure the best performance----to display status information for debugging)哪位朋友请帮忙翻译一下好吗。
谢谢!!!!!!!!!!!!
...全文
79 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
blazingfire 2002-05-09
  • 打赏
  • 举报
回复
在WIN操作系统中,内存管理器管理着应用程序的动态内存的分配和回收。像New,Dispose,GetMem, ReallocMem, and FreeMem这些标准的过程都用得到内存管理器,并且所有的长字符串和所有对象的内存分配都是通过内存管理器实现的
Fanzhou 2002-05-09
  • 打赏
  • 举报
回复
o,原来如此!期待中!
Fanzhou 2002-05-09
  • 打赏
  • 举报
回复
linuxmate(linuxmate) 麻烦给我一份《Object Pascal中文参考手册》,vacuumnet@sina.com,非常感谢!
linuxmate 2002-05-09
  • 打赏
  • 举报
回复
To :delphi_xizhousheng(西周生)
再等一段时间吧,我还没翻译完呢,:-)
delphi_xizhousheng 2002-05-09
  • 打赏
  • 举报
回复
To :linuxmate(linuxmate),我想要《Object Pascal中文参考手册》,请给我发一份,或是给个下载地址,xizhousheng@sina.com 谢谢!
linuxmate 2002-05-09
  • 打赏
  • 举报
回复
修正版:

注意:Linux使用glibc函数,比如malloc,进行内存管理。要了解更多信息,请参考Linux系统关于malloc的帮助文件。
在Windows系统下,内存管理器负责程序中所有的动态内存分配和回收。New、Dispose、GetMem、ReallocMem和FreeMem标准过程使用内存管理器,所有的对象和长字符串也通过内存管理器来进行分配。
在Windows下,对于面向对象的程序和处理字符数据的程序,典型情况下,它们需要分配大量的较小或中等大小的内存块,内存管理器对这种情况进行了优化。而其它的内存管理器,象GlobalAlloc和LocalAlloc的实现方式以及Windows支持的私有堆,在这种情形下性能并不好,当直接使用时,会降低程序速度。
为确保最好的性能,内存管理器直接和Win32虚拟内存API(VirtualAlloc和VirtualFree函数)打交道。内存管理器从操作系统中保留(reserve)地址空间时,以1MB为一节(单位);当需要提交(commit)物理内存时,以16KB的幅度进行。当释放内存和地址空间时,也是以16KB和1MB为单位的。对于更小的(内存)块,在已提交的内存中进行再分配。
内存管理器块总是以4个字节进行对齐,并总是拥有一个4字节的头,这里包含内存块的大小及其它信息位。这意味着,内存管理器块总是以双字的形式优化排列,以保证定位内存块时CPU的效能发挥的最好。
内存管理器维护着两个状态变量:AllocMemCount和AllocMemSize,它们保存着当前分配的内存块数目、以及这些内存块的总容量。在调试时,应用程序可以利用这些变量来显示状态信息。
System单元提供了两个过程:GetMemoryManager和SetMemoryManager,它们允许程序拦截底层的内存管理器调用。System单元还提供了GetHeapStatus函数,它返回一个包含内存管理器详细状态信息的记录结构。
MemechaLook 2002-05-09
  • 打赏
  • 举报
回复
To ensure the best performance----to display status information for debugging

为了实现最佳运行效果,内存管理器与Win32虚拟内存API直接建立接口。内存管理器用1MB分区和地址空间满足OS所需,以16KB为增量,在需要时增大内存提交量。内存管理器以16KB和1MB为单位撤消使用与释放内存。对于更小一些的块,被提交的内存的分配则相对低级别。

内存管理器的块总是以4字节为界四舍五入,同时总是包括一个4字节的头以表示块大小。这意味着那些内存管理器的块总是双字对齐的,以保证在块寻址时CPU的性能优化。
………………
linuxmate 2002-05-09
  • 打赏
  • 举报
回复
注意:Linux使用glibc函数,比如malloc进行内存管理。要了解更多信息,请参考Linux系统malloc帮助文件。
在Windows系统中,内存管理器(memory manager),负责程序中所有的动态内存分配和重新分配。几个标准过程:New、Dispose、GetMem、ReallocMem和FreeMem使用内存管理器,所有的对象和长字符串,也通过内存管理器来进行分配。
在Windows下,针对分配大量的较小或中等大小内存块的程序(对于面向对象的程序和处理字符数据的程序,情况本来如此),内存管理器进行了优化。而其它的内存管理器,象GlobalAlloc和LocalAlloc的执行方式以及Windows支持的私有堆,在这种情形下性能并不好,当直接使用时,会降低程序速度。
为确保最好的性能,内存管理器直接连接Win32虚拟内存API(VirtualAlloc和VirtualFree函数)。内存管理器从操作系统中保留(reserve)地址空间时,1MB为一节(单位);当需要提交(commit)物理内存时,以16KB的幅度进行。在释放内存和地址空间时,也是以16KB和1MB为单位的。对于小的内存块,在已提交的内存中进行再分配。
内存(管理器)块总是以4个字节进行对齐,并(总是)拥有一个4字节的头,它包含内存块的大小及其它信息位。这意味着,内存块总是以双字(double-word)的形式排列,以保证定位内存块时CPU的效能发挥的最好。
内存管理器维护着两个状态变量:AllocMemCount和AllocMemSize,它们保存了当前分配的内存块数目,以及这些内存块的总容量。在调试时,应用程序可以利用这些变量来显示状态信息。
System单元提供了两个过程:GetMemoryManager和SetMemoryManager,它允许程序拦截底层的内存管理器调用。System单元还提供了GetHeapStatus函数,它返回一个包含内存管理器详细状态信息的记录(结构)。

我有《Object Pascal中文参考手册》,想看吗?
MemechaLook 2002-05-09
  • 打赏
  • 举报
回复
(1)在windows系统中,内存管理器管理应用程序中所有的动态内存分配和收回。New,Dispose,GetMem,ReallocMem和FreeMem标准过程使用内存管理器,同时,所有的对象与长字符串也有内存管理器分配。
zouliyuan 2002-05-09
  • 打赏
  • 举报
回复
这是讲解内存的内容没有什么东西
不必看了
你在那里看到的这个信息!!!
firetoucher 2002-05-09
  • 打赏
  • 举报
回复
很简单的啊。 sigh
不值费时
l_xiaofeng 2002-05-09
  • 打赏
  • 举报
回复
感觉大家都这样,英文都很poor啊
luoshumeng 2002-05-09
  • 打赏
  • 举报
回复
有意思,看来大家有同感呀,前天有个香港的和我聊英文,一下子就跑了,Because I am poor in English.
softwing 2002-05-09
  • 打赏
  • 举报
回复
记忆经理---内存管理器
美国石油协会---API
哈哈,搞笑!
aflash 2002-05-09
  • 打赏
  • 举报
回复
翻译软件翻译的实在太夸张了吧!!!!
dschebei 2002-05-08
  • 打赏
  • 举报
回复
jin shan de jie zuo!

在窗口系统上,记忆经理在一个申请中处理所有的动态记忆配置和 deallocations 。 新者,处理,GetMem , ReallocMem 和 FreeMem 标准程序使用记忆经理,而且所有的物体和长的线经过记忆经理被分派。
在窗口之上,记忆经理被为申请最佳化部署大量的小- 到中型的区段, 如同对程序串起数据的物体定向的申请和申请是典型的。其他的记忆经理,例如 GlobalAlloc , LocalAlloc 和二等兵堆的落实在窗口中支援,典型地在如此的情形中不 运行得很好,和会减慢 一个申请是否他们直接的被用。

直接的用 Win32 虚拟的记忆美国石油协会确定最好的表现,记忆经理接口。 (VirtualAlloc 和 VirtualFree 功能)记忆经理保留记忆从那在住址的 1 个万位元组的区段中操作系统隔开,而且委托如 16 个 KB 的增量所需要的记忆。 它在 16 个 KB 的和 1 个万位元组的区段中的 decommits 和释放不用的记忆。 对於比较小的区段,委托记忆是进一步的 suballocated。
记忆经理区段总是被以上弄圆到 4 个位元组的边界, 和总是包括一个区段和其他的状态一点点的大小被储存的 4 个位元组的首领。 这意谓记忆经理区段总是两倍的-字排列的, 保证最佳的处理器表现何时向区段演说。

记忆经理维持二个状态变数, AllocMemCount 和 AllocMemSize, 包含现在分派的记忆数字区段,而且现在包含全部的被联合的大小分派了记忆区段。 申请能使用这些变数为除错显示状态数据。
系统单位提供二个程序, GetMemoryManager 和 SetMemoryManager,那允许申请拦截低水平记忆经理呼叫。 系统单位也提供一个称为归还记录包含详细的记忆- 经理状态数据的 GetHeapStatus 的功能。
以上是希腊古都的帮忙中物体 Pascal laguage 中记忆经理概观


naughtyboy 2002-05-08
  • 打赏
  • 举报
回复
hehe
去找东方快译之类的软件把
没办法
帮你up一下

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧