【问题标题】:Something faster than simplexml_load_file() PHP [duplicate]比 simplexml_load_file() PHP 更快的东西 [重复]
【发布时间】:2012-06-16 00:40:58
【问题描述】:

可能重复:
What is the fastest XML parser in PHP?

我仍然需要维护 xml 格式,但我发现我的主要瓶颈是我对 simplexml_load_file(); 的多次调用

【问题讨论】:

  • 我认为洋基队有这个权利。我需要考虑读取 .xml 文件以外的其他方式,我认为从硬盘驱动器的实际读取是这里的一大瓶颈。
  • 您必须在我要说的问题中添加更多信息。调用是瓶颈,很好,但它是要打开的函数还是文件?一些更多的细节,实际上是一个代码示例,可以告诉更多的单词,并且实际上会对其他人有所帮助。

标签: php xml simplexml


【解决方案1】:

simplexml_load_file 本身并没有那么慢。问题是它导致的 I/O,这将是昂贵的。使用不同的方法来解析您的 XML 文件不会使其更快。

您可以尝试优化您的程序以减少打开 xml 文件的频率,或者您可以考虑另一种保存数据的方式,例如在数据库中以加快处理速度。

【讨论】:

  • 你在我的另一个线程中帮助了我,哈哈。如果这真的是 I/O 的问题,那么我想我已经沉没了。我不确定数据库的表现如何。值得考虑某种形式,但我几乎不知道如何将 XML 数据操作到数据库中。我有一个包含 30k 个项目的 XML 文件,每个项目都有大约 50 个元素。呃..
  • 嗯,好的,这在 30k 的重要信息中......也许你可以分成更小的文件,这样你就不需要每次都解析完整的文件?另外:考虑一个原生 XML 数据库,例如 eXist:exist-db.org。这样你就不需要改造你的 xml 文件了。
  • 所以不值得将每个元素都放入数据库吗?
  • 也许吧。如果不确切知道您的 xml 文件包含什么样的数据以及您的查询如何表达,就很难说出来。有平面 XML 文件,有原生 XML 数据库,有关系数据库,有图形数据库,......而且它们都有应用程序,有的地方有亮点,有的没有。如果您有大量数据(正如您所做的那样)并且您只需要查询摘录,但那些经常查询,那么这需要一个数据库,但哪种数据库是另一个问题。
  • 嗯,非常慷慨地捐赠给我空间的服务器正在运行 MySQL。我正在考虑尝试将每个元素粘贴到数据库中,但我还没有正式学习如何正确使用数据库。
猜你喜欢
  • 2010-10-05
  • 2012-04-15
  • 2015-07-07
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多