Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP(不是快速cgi)-如何提供一个~1000项的查找表,将短字符串映射到所有PHP脚本的数字?_Php_Performance_Cgi - Fatal编程技术网

使用PHP(不是快速cgi)-如何提供一个~1000项的查找表,将短字符串映射到所有PHP脚本的数字?

使用PHP(不是快速cgi)-如何提供一个~1000项的查找表,将短字符串映射到所有PHP脚本的数字?,php,performance,cgi,Php,Performance,Cgi,我有一个html目录,里面充满了非常小的PHP脚本,这些脚本除了将查询字符串参数转换为重定向之外什么都不做 apache服务器每天需要约60K个请求,但它没有配置任何快速cgi/mod cgi(我不确定这里的术语是否正确),而且它不是一台特别坚固的机器,因此我不太愿意为这些脚本中的逻辑增加大量开销 我必须做的是在关联数组或等效数组中引入查找,以便入站URL中的字符串可以映射到出站URL上的数字(实际上是字符串) 我担心的是,如果我在每个请求上都引入MySQL查询,会降低性能 同样,如果我包含一个

我有一个html目录,里面充满了非常小的PHP脚本,这些脚本除了将查询字符串参数转换为重定向之外什么都不做

apache服务器每天需要约60K个请求,但它没有配置任何快速cgi/mod cgi(我不确定这里的术语是否正确),而且它不是一台特别坚固的机器,因此我不太愿意为这些脚本中的逻辑增加大量开销

我必须做的是在关联数组或等效数组中引入查找,以便入站URL中的字符串可以映射到出站URL上的数字(实际上是字符串)

我担心的是,如果我在每个请求上都引入MySQL查询,会降低性能

同样,如果我包含一个包含1000项数组定义的PHP文件,我担心缺少任何内存驻留PHP解释器将导致类似的开销

我曾想过编写一个shell脚本并利用_envglobal,但我想知道这是否会带来同样多的开销

如果有经验丰富的灯具开发人员有任何想法,我们将不胜感激

可能的答案:

  • 告诉我配置apache集成PHP没有什么可怕的,并给我一些说明的链接
  • 告诉我,每个请求的MySQL查询的开销可以忽略不计
  • 告诉我,在reach请求中包含大数组定义的开销可以忽略不计
  • …还有别的想法
如果我们告诉您“测试并查看”该怎么办

如果你有内存,MySQL应该可以忽略不计。这是一个简单查询的内存缓存的套接字命中

如果您有CPU,PHP模块可能不会被注意到

如果你两者都没有,你注定要失败:)

每天60K个请求,每天8小时,每秒2个事务。那真的不是很多流量。毫无疑问,你有尖刺和更重,更安静的时间。但即使如此

在apache中嵌入PHP通常会加快速度。但没有你想象的那么多。启动的成本是过程的分叉和创建,但是PHP解释器代码已经加载到其他地方的RAM中(如果有重叠的请求,很可能),或者至少加载到磁盘缓存中。所以它是可以测量的,不能说它是显而易见的。(把“视情况而定”这句话像童话般撒在所有这些陈述上,对吗?)

简单地说,如果您可以测试它,我将测试php映射中的1000行,看看它是如何运行的。对于一个简单的示例,只需从命令行对其计时(多次),然后查看区别。该文件可能会在文件缓存中保持热状态,因此I/O将是最小的,从而将大部分负担放在PHP解释器解析器(以及CPU)上


你说你没有健壮的机器,所以我不知道这是什么意思,但现代的“慢”机器是“相当健壮的(tm)”。

如果你没有CGI或FastCGI,你可能有mod_php,它实际上是一个内存驻留的php解释器。但是,为了获得最佳性能,无论如何都应该使用像XCache这样的操作码缓存。