繁体   English   中英

如何通过大量RSS提高应用程序速度

[英]How to increase speed of application with lots of RSS

大家早上好...

我有很多RSS供稿的Web应用程序。 流程如下

  • 从各个站点获取RSS(使用PHP)
  • 将其存储在数据库中(MySQL)
  • 阅读并显示给用户浏览器。

每隔一小时进行一次获取,并将其存储到DB。

然后,无论谁请求,都将这些提要显示给用户浏览器。 (从数据库读取并显示它。)

阅读过程不是那么快。 换句话说,如果用户在同一页面上有20个提要,则每个提要加载5篇文章。 它并没有那么快,目前还不能提供良好的用户体验。

我在8GB RAM VPS服务器上运行,技术-PHP,MYSQL,MOOTOOLS,javascript

然后为了快速起见,我尝试使用平面文件-从各个站点读取提要并将其写入提要文件。 (每个供稿使用单独的文件。)

然后阅读提要文件并在用户浏览器上显示它。 在这种情况下,它比从数据库读取要慢。

所以现在我没有选择..也没有线索我可以做些什么来提高我的网站的速度。

如果有任何专家的建议,请告诉我。

蒙娜娜

我不会认为自己是专家,但是我至少可以给您一些尝试:首先,您要显示自己数据库中的rss提要是一件好事,如果任何rss来源由于以下原因而失败,这应该可以保护您rss提供者遇到的问题。 尽管如此,我建议您将rss提要的加载部分移到一个单独的文件中,该文件在服务器端运行(并将其放入“ cronjob”中)。 这样可以确保用户永远不会因重建数据源而受到困扰。 然后可以每小时调用一次此cronjob以刷新数据库。

下一步将是找出进程最慢的地方,是否有慢查询? 还是您的脚本中只有一些缓慢的代码?

为了缩小原因,我真的建议您安装XDebug扩展(这里有Windows可用的dll: http : //pecl.php.net/package/Xdebug ),并将以下几行添加到php.ini中: [XDebug] zend_extension = "C:\\xampp\\php\\ext\\php_xdebug.dll" xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 1 xdebug.profiler_output_dir = "C:\\xdebug" xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 0 xdebug.remote_handler = "dbgp" xdebug.remote_host = "127.0.0.1" xdebug.trace_output_dir = "C:\\xdebug"

安装后,将?XDEBUG_PROFILE添加到您的网址(请参阅: http : ?XDEBUG_PROFILE )将生成一个文件,您可以使用WinCacheGrind( http://sourceforge.net/projects/wincachegrind/ )进行检查。 。 该程序可以缩小每个函数调用的执行时间。

我希望这可以帮助你 :)

PS:确保禁用甚至更好的是,不要在您的生产环境上安装XDebug,因为XDebug会降低脚本速度。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM