我想在我的網站的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