【问题标题】:How can I optimize my xml output so that the data transfer time be lower?如何优化我的 xml 输出以缩短数据传输时间?
【发布时间】:2010-10-29 07:22:36
【问题描述】:

嗨,

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

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

前:

<?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,它似乎都是相同的(可能相隔几微秒)。有什么办法可以加快速度?

【问题讨论】:

    标签: php mysql xml cron data-transfer


    【解决方案1】:

    如果您不削减您的 XML 输出长度本身,我看不到大幅加速的可能性。

    为传输去除不必要的空格非常有用,因为它会降低传输速度。即使它不是那个笨蛋。你的 xml 越长,你那里不必要的空格就越多(解析 xml 是不必要的。仅用于人类可读性)你赢的越多。如果您有很深的层次结构和许多空白以使其可读,那么您将获得mutch。如果没有,那么剥离不会降低传输速度。

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

    【讨论】:

    • 感谢您的回复。传输速度并没有那么好,但仍然很快,因为我的查询被重写为更快。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      此外,如果您担心绝对最小的数据,可以使用 JSON 来代替 XML。

      【讨论】:

      • 我决定使用 xml,因为从概念上讲它对我来说比 JSON 处理得更好,而且我可以将 XML 输出直接转储到本地数据库中。
      猜你喜欢
      • 2018-12-11
      • 2020-06-09
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 2019-07-18
      • 1970-01-01
      相关资源
      最近更新 更多