- 主题:像ultraedit那种几百兆的文件秒开是怎么做到的?
说实话,c stdlib 我是知道 fseek 的,至于 seek 是个什么玩意儿就只有你知道了
【 在 marxn (eagle) 的大作中提到: 】
: 你确定你知道fseek是干啥的?
--
FROM 122.59.26.*
基于行的文本编辑本来就不是随机存取,搞那么底层有毛用?
【 在 marxn (eagle) 的大作中提到: 】
: fseek是C stardard库,不同OS,不同编译器厂商的实现都不一样,用户甚至可以自己去实现standard library。什么时候轮到它去承担底层IO了?
--
FROM 101.98.83.*
都是靠的 cpu 提供的虚拟内存管理支持,直接把文件映射成内存地址,由 page fault 进入内核态,再通过 cpu 把缺少的页面交换到内存中。swap file(win 的 pagefile.sys),pe loader,用的都是相同的技术。
【 在 z16166 (Netguy) 的大作中提到: 】
: 看来你们脑海里主要是linux的mmap,我脑海里的主要是win的file mapping
--
修改:eGust FROM 122.59.26.*
FROM 122.59.26.*
linux 和 win 对文件的处理差别极大,加上 ntfs 跟 linux 上主流的文件系统也差别极大,具体哪个环节出问题的确是不好说。win 平台文件是内核对象,任何操作都重了许多,关闭之前很多其他操作做不了,既慢又条条框框多,出问题的概率自然就低了。
【 在 z16166 (Netguy) 的大作中提到: 】
: file mapping在win上使用,从没听到有人诟病说不该(滥)用,pe loader使用,notepad也使用,大量的第三方软件也使用。
: 楼上有位说linux上map小文件有性能问题,怀疑是下面的文件系统的问题,这不应该是file mapping的锅。
--
FROM 122.59.26.*