我正在使用PHPExcel和PHP orm来生成excel5电子表格,以用于Web应用程序交易的报告.
必须写更多的东西,我想知道一个perl解决方案是否会减少内存消耗,并更快地生成该excel文件?
例如,使用重新调整大小的列来创建186行和最多BG的列,并在PHPExcel上使用日期,数字和字符串等数据类型设置,在64位,6核,ssd驱动器和gb的内存上占用了91mb的内存和62秒的内存. ,Linux服务器. (数字不包括orm)
解决方法:
我搜索了太多基本的perl用法,函数等之后,自己对它进行了测试,所以这里是:
测试笔记
此处显示的统计信息与我提出的问题相差很大,因为我对每一行进行了外部api调用,这花费了很多时间.
PHP的内存统计数据是未创建任何excel文件与创建它之间的峰值用法差异,而与perl一起使用的是valgrind. (在这里也请从我的问题中忽略内存统计信息)
另外,我没有使用管道将值从PHP orm传递到perl(这可能更快),也没有在perl内执行查询,因为我不想为此测试深入到perl.我只是将json_encoded字符串写入PHP中的文件,使用exec()称为perl脚本,然后读取文件并在perl中解码json字符串.
我使用了两个库的最新版本
数据测试
使用基本的粗体格式创建一个标题行,
180行以上的数据,列的上限为BG,
将一堆日期和数字格式应用于一半的列,
以及自动调整列大小.
答案/结果(几次运行平均)
使用PHPExcel:4.94秒,60,191 mb
使用Perl Spreadsheet :: WriteExcel:0.01秒,13,193 mb