2014-02-13 39 views
0

在我的php文件中,我不知道開放標籤和結束標籤是否會對性能產生影響。<?php and ?>標籤的數量是否會影響性能?

即。

<?php echo 'Hello world'; ?> 
<?php echo 'Hello world'; ?> 
<?php echo 'Hello world'; ?> 
<?php echo 'Hello world'; ?> 
<?php echo 'Hello world'; ?> 

<?php 
    echo 'Hello world'; 
    echo 'Hello world'; 
    echo 'Hello world'; 
    echo 'Hello world'; 
    echo 'Hello world'; 
?> 

如果有,是什麼影響?

+8

不可測量。編寫代碼,以便您可以閱讀和維護它。一般來說,解析器優化是微不足道的時間。 – Brad

+0

我非常懷疑它。如果是這樣,它會非常非常小。試一試,將其中的100個文件放在一個文件中,然後運行一個循環來請求每個樣式中的1,000,000次以上的文件進行查看。 –

+1

我懷疑這將會是重要的真實生活情況。 – Mihai

回答

16

是否會影響性能?是。只是因爲解析器有更多文本需要解析。它必須有影響。是的,它會產生可衡量的影響。

它有一個有意義的影響?一點都不。即使您的應用程序中有數百萬個應用程序,您也很難看出有什麼區別。是的,會有更多的時鐘週期使用,但瑣碎...

更大的事情是要注意,兩段代碼是不一樣的一般。在關閉?>之後,PHP將刪除單個新行,但?>之後的任何其他字符將在輸出中呈現。因此?>之後的尾部空格或多個換行符將直接呈現。

所以我的建議是忽略性能,寫出正確和更可讀的代碼(更正確的語言代碼)。並忽略小的性能差異...

+2

不,他們都會生成第二個版本,因爲在任何輸出上都沒有'\ n'。 –

+2

@PhilPerry在這種情況下,是的,因爲換行符被'?>'解析器剝離,但是如果有第二個換行符或空格,那麼它將被渲染。答案已更新。 – ircmaxell

+0

專業提示:'''<?='''是'''<?php echo'''的縮寫,與短標籤不一樣。只是把這個問題放在那裏,因爲這個問題涉及可讀性和模板。 –

3

我會說盡可能在PHP封裝器內整合而不犧牲可讀性/功能性。除非你明確有理由打破(或使用) PHP(例如輸入相當數量的HTML),爲什麼呢?

性能影響很小,無論如何都是服務器端。如果你真的擔心,你可以測試你的頁面加載時間,但我會下注測試它的時間是指數增加的實際負載。

舉個例子:

<?php 
    $foo = 'writing code'; 
    echo "<h1 class=\"hstyle4\">Hello World</h1>"; 
    echo "<p>I am {$foo}, specifically HTML, inside of PHP using echo."; 
    echo 'but I could just as easily have broken it into html and used only what I needed.</p>'; 
?> 

對戰

<?php $foo = 'writing code'; ?> 
<h1 class="hstyle4">Hello World</h1> 
<p>I am <?php echo $foo; ?>, specifically HTML, outside of PHP. It's probably a lot more readable this way, and doesn't impact the server nearly as much by parsing unnecessary code that could have easily been handled another way.</p> 
+0

你是「正確的」,但可能不是你認爲的原因(或者3年前你的想法)。前言:根據以下信息做出決定,而不是代碼讀取的方式是微型優化,這是萬惡之源;不要這樣做。這些例子中的每一個都將轉化爲一個'ASSIGN'指令和三個'ECHO'指令。然而,第一個例子,因爲它使用了插值,所以還需要首先生成一個字符串,這使得它更加複雜。 [first opcodes](https://3v4l.org/nbaNp/vld)vs [last opcodes](https://3v4l.org/aku1S/vld)。 – Dereleased

相關問題