gpt4 book ai didi

benchmarking - PHPExcel 的最低内存缓存方法

转载 作者:行者123 更新时间:2023-12-04 18:06:10 27 4
gpt4 key购买 nike

我尝试使用 PHPExcel 手册第 4.2.1 节中的不同缓存方法。

做了一个 10 万行的基准测试,结果如下

gzip = time=50,memoryused=177734904
ser = time=34,memoryused=291654272
phptm= time=41,memoryused=325973456
isamm= time=39,memoryused=325972824

手册说 phptmp 和 isamm 方法使用磁盘而不是内存。因此,他们应该使用最少的内存,但似乎恰恰相反。

这是我用来测试的代码:
                $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
// $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
// $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_phpTemp;
// $cacheSettings = array( 'memoryCacheSize' => '8MB');
// $cacheMethod = PHPExcel_CachedObjectStorageFactory:: cache_to_discISAM;

PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);

$xlsReader = PHPExcel_IOFactory::createReader($fileType);
$xlsReader->setReadDataOnly(true);

任何人都可以解开这个谜团吗?

最佳答案

这取决于许多因素,包括 PHP 版本、单元格内容(数字、字符串、富文本等)、为 PHP 启用的扩展等;所以除了你自己之外,任何人都不可能真正回答,因为这对你的情况来说是独一无二的。

但是,除 SQLite 外,所有方法都在内存中保留有关每个单元格的一些信息,因此使用 SQLite 数据库是内存效率最高的选择。

编辑

几个月前,我对不同版本的 PHP 使用不同的缓存方法进行了一些测试,以下总结了结果

enter image description here

enter image description here

这些仍然是相当随意的结果,磁盘速度和其他因素会影响一些缓存方法的性能,如 discisam 和 phptemp,任何配置设置如 phptemp 的选项也会有一些影响;但它应该给出一个相对指南,以确定哪些选项对内存更好,哪些选项对执行速度更好。

关于benchmarking - PHPExcel 的最低内存缓存方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27607250/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com