我想在我的网站的php代码中添加6000行代码,运行在LAMP上。 共享主机$ 6 /月。这个片段会在apache上吃很多php内存吗?
我的问题是它会吃掉很多的PHP内存?
if($id==1)
{
sprintf($url,....);
}
else
if($id==2)
.....
,并以此类推,直到$id
等于6000
我想在我的网站的php代码中添加6000行代码,运行在LAMP上。 共享主机$ 6 /月。这个片段会在apache上吃很多php内存吗?
我的问题是它会吃掉很多的PHP内存?
if($id==1)
{
sprintf($url,....);
}
else
if($id==2)
.....
,并以此类推,直到$id
等于6000
它会吃了太多的内存和CPU,即使“太多”是只有几KB;你可以编写比这更好的代码。
强调**你可以编码比这更好** – 2011-03-08 05:17:11
哦,那么堆栈有什么用处?怎么来CPU?如果我在DB中放置相同的信息,那么它会消耗更多的内存和CPU!可能是 – user5858 2011-03-08 05:26:40
,但我并没有考虑使用数据库。请参阅sarnold针对一种方法的回答。 – 2011-03-08 05:29:04
肯定会“吃光”记忆。分析器必须加载6000 if语句,网址等..
既然你在LAMP,趁M
的抛网址到MySQL数据库,并选择基础上,$id
到达$url
6000需要比到达$url
更长的时间1.不是6000倍,但更长。
我不太确定这个设计的智慧,但使用an array可能会允许更快的存取时间:
$urls = array(1 => "http://www.foo.bar/", 2 => "http://blubber.blorp/");
sprintf($urls[$id],...);
如果所有的URL与http://
开始,然后你可以移动到这你的sprintf()
调用来保存内存。但是,每6000个字符串乘以100个字节(假设长URL)仍然只有600,000个字节,并且有些开销可能咀嚼少于1兆字节的内存总量。
完全除了内存消耗,没有更好的方法来做到这一点?! O_O – deceze 2011-03-08 05:12:09
@deceze我认为他坚持让他的钱值得。 – 2011-03-08 05:14:14
@ scrum-meister 0.01¢/ if-statement似乎高估了我';)' – 2011-03-08 05:15:58