上一主题下一主题
关键字
主题 : 100W+的数据写入一个XML文件,怎么做能提高效率?
级别: 北风技术菜鸟

UID: 470406
精华: 0
发帖: 303
威望: 1471 点
学点: 738 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-06-27
最后登录: 2015-04-06
楼主  发表于: 2015-03-20 13:57||

100W+的数据写入一个XML文件,怎么做能提高效率?

问题场景: CHX- 4-84{  
公司有100W+的数据要提交给第三方平台,第三方平台要求使用XML的文件格式(上传时可以压缩成gz格式),但也要求把所有的数据写入一个XML文件,不可以分割; 6YeEr!zt%  
我的****法是将数据写入到$dom对象里,最后统一 $dom->s****e($xmlFile); 这种方式占用内存太大,而且100W+的产品写入操作完成需要很长的时间。 gx)!0n;  
0($ O1j~$  
我想请问一下各位大拿,有没有更好的建议,可以减少内存占用,以及缩短Job执行时间的方法呢? LU7d\Ch  
非常感谢~~~
此帖悬赏结束
最佳答案: 2 学点
最佳答案获得者: dhx840828284
级别: 北风资深评论员


UID: 470398
精华: 0
发帖: 3024
威望: 3862 点
学点: 8642 点
贡献: 90 点
好评: 0 点
学币: 112 个
注册时间: 2014-06-27
最后登录: 2015-04-07
沙发(1楼)  发表于: 2015-03-20 13:58||

用dom就必须把所有的数据全部放到内存里面 :^En\YcU  
~]Weyb[ N  
我觉得直接用字符串拼xml会很快,而且拼好一块就append到文件里面,应该会快很多
最佳答案奖励: (+2) 学点
级别: 北风资深工程师

UID: 472681
精华: 0
发帖: 1791
威望: 1815 点
学点: 2095 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-07-10
最后登录: 2015-04-07
板凳(2楼)  发表于: 2015-03-20 13:57||

如果xml结构不复杂的话,用字符串拼接 往往比使用xml库来导出xml数据要快很多。 &izk$~  
换别的语言试试,php对文件I/O的操作是很慢的。
热心助人奖励: (+1) 学点
级别: 北风资深工程师

UID: 472685
精华: 0
发帖: 1930
威望: 1946 点
学点: 3280 点
贡献: 0 点
好评: 0 点
学币: 0 个
注册时间: 2014-07-10
最后登录: 2015-04-08
地板(3楼)  发表于: 2015-03-20 13:58||

内存虚拟成一块硬盘,然后写入你的内存硬盘 d$(>=gzBQ  
拿到一个数据就写入file,而不是拿到所有数据才写人