如何优化xml输出以使数据传输时间更短?

时间:2010-10-29 07:22:37

标签: php mysql xml cron data-transfer

HI,

我有一个调用基本API URL的cron。输出是xml,所以我使用php的file_get_contents()来获取要处理的数据。

我的问题是,xml的输出格式是否会影响从一台服务器到另一台服务器的传输时间? cron每十分钟运行一次,我不希望crons在某些时候重叠,因为数据处理是时间敏感的。

前:

<?xml version="1.0"?><api><data>sometext here</data></api><!-- As one line -->

<?xml version="1.0"?>
<api>
   <data>sometext here</data>
</api>   <!-- As multiple lines -->

请注意,这只是一个xml示例,我的数据使xml输出2000+行。

我测试了它,对于任何类型的xml来说它似乎都是相同的(可能相隔几微秒)。有什么方法可以加快速度吗?

3 个答案:

答案 0 :(得分:1)

如果你不削减你的XML输出长度本身,我看不到拥有大的加速。

剥离不必要的空格进行传输非常有用,因为它可能会降低传输速度。即使不是那种变态。你的xml越长,那里你有更多不必要的空格(解析xml是不必要的。只用于人类的可读性)你赢得的越多。如果你有一个很深的hirarchy和许多白色空间,使它可读,那么你将获得mutch。如果没有那么剥离不会降低mutch的传输速度。

我唯一能看到的方法就是生成更小的xml数据。

答案 1 :(得分:0)

也许你可以像gzip一样尝试压缩。

答案 2 :(得分:0)

使用gzip压缩您的网页。您可以通过mod_gzip(apache模块)执行此操作,或者如果您使用的是PHP,请在php.ini中设置zlib.output_compression = On。这会将您的纯文本内容压缩到其原始大小的20%。

此外,如果您担心绝对最小的可能数据而不是XML,则可以使用JSON将其发送出去。