乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      PHP終極提速

       Ralf_Jones 2006-06-28
      Board logo

      標題: PHP終極提速 [打印本頁]

      作者: HeTal    時間: 2006-3-30 10:09 AM     標題: PHP終極提速

      人們都說PHP是腳本語言,但是我們應該感謝我們的Zend,他為我們做了很多可以擴展的功能
      用Zend API和PHP API的擴展把我們的PHP的復雜操作封裝到PHP或者PHP的extensions里,這里的速度將會有質的提高
      網上一直在說JSP和PHP的10000*10000等的運算,我試過把這個函數(shù)寫到一個so文件里,PHP來調用這個函數(shù),只用了幾百毫秒,我想這是JSP或者JAVA永遠都不可能做到的
      所以:
      終極提速就是:::

      把復雜的,耗時的操作封裝到PHP的extensions里,可以編譯到PHP里,也可以編譯成so或者dll文件,3Q
      這里也特別建議加一個PHP的Zend API的討論區(qū),謝謝!
      這是my_test.c中的test的函數(shù)

      PHP_FUNCTION(test)
      {
              char *arg = NULL;
              int arg_len, len;
              char string[256];
              /*

              if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &arg, &arg_len) == FAILURE) {
                      return;
              }
              */
              //gettimeofday(&t,NULL);
              int i=0,j=0;
              for(i=0;i<10000;i++)
                      for(j=0;j<10000;j++){}

              return SUCCESS;
      }
      這是我在PHP里調用的代碼

      <?
      if(!extension_loaded(‘my_test‘)) {
              dl(‘my_test.‘ . PHP_SHLIB_SUFFIX);
      }
      function getmicrotime(){
          list($usec, $sec) = explode(" ",microtime());
          return ((float)$usec + (float)$sec);
          }

      $time_start = getmicrotime();
      /*
      for($i=0;$i<10000;$i++)
              for($j=0;$j<10000;$j++){}
      */
      test();
      $time_end = getmicrotime();
      $time = $time_end - $time_start;
      echo "seconds:$time\n";
      ?>
      程序執(zhí)行結果:

      seconds:0.358623981476
      [ 本帖最后由 HeTal 于 2006-3-30 10:16 AM 編輯 ]
      作者: HeTal    時間: 2006-3-30 12:24 PM

      自己頂一下
      作者: xuefengal    時間: 2006-3-30 01:39 PM

      寫應用擴展是很不錯,但針對你的題目及代碼確不怎么合適

      [ 本帖最后由 xuefengal 于 2006-3-30 01:45 PM 編輯 ]
      作者: xuefengal    時間: 2006-3-30 01:41 PM

      ,,,,,,

      [ 本帖最后由 xuefengal 于 2006-3-30 01:42 PM 編輯 ]
      作者: darx    時間: 2006-3-30 04:10 PM


      好帖
      作者: 奶瓶    時間: 2006-3-30 10:33 PM

      look
      源文件的ext里有一個ext_skel
      運行它一下,看看有啥~~
      作者: HeTal    時間: 2006-3-30 11:04 PM

      我這里只是舉一個例子,具體的,比如你在網站的搜索這種功能,PHP腳本本身很費時,這個時候你就可以把他寫成so的方式
      還有就是寫商業(yè)模塊,這方面我覺得也很不錯
      謝謝,呵呵
      作者: 奶瓶    時間: 2006-3-30 11:55 PM

      搜索動作本身不應該PHP完成,出于實際使用上的考慮
      商業(yè)模塊也不應該做so,出于道義上的考慮

      分享,是一種美德

      哈哈哈
      作者: yueyang    時間: 2006-3-31 08:49 AM

      不錯,現(xiàn)在做ASP的都搞組件來加密商業(yè)代碼了。
      PHP加密也被破解了,看來只有如此了。
      作者: HeTal    時間: 2006-3-31 10:14 AM



      QUOTE:
      搜索動作本身不應該PHP完成,出于實際使用上的考慮
      商業(yè)模塊也不應該做so,出于道義上的考慮

      分享,是一種美德
      搜索動作是應該由PHP發(fā)起,搜索過程才不是由PHP完成
      商業(yè)模塊也不應該做so,出于道義上的考慮
      看來微軟和很多賣錢的軟件公司都沒有道義了?
      呵呵,我們只能說so等是一種方案,但不是全部,對吧?
      作者: 奶瓶    時間: 2006-3-31 10:35 AM

      發(fā)起動作無非是接受form 分析 提交 再接收 再輸出
      這種動作對擴展來說不會獲得多大好處

      不是賣錢的公司無道義,我也賣錢,不過按照so這種方式來發(fā)布好像很奇怪
      so的本質是做功能性、協(xié)議擴展,連接PHP和其它程序(比如數(shù)據(jù)庫系統(tǒng))
      對于性能上的擴展,并不是特別的常用,畢竟沒有多少人會用PHP這種腳本算圓周率,擴展性能比較多地集中在數(shù)組上,因為PHP的數(shù)組是一種散列,二維數(shù)組的排序、遍歷等操作是非常慢的,但是又很常用,這一類的應用才有價值
      作者: HeTal    時間: 2006-3-31 11:48 AM



      QUOTE:
      按照so這種方式來發(fā)布好像很奇怪
      我用過很多商業(yè)的API,他們在LINUX下的發(fā)布都是有.a或者.so的方式來發(fā)布他們的API,用這種方式發(fā)布商業(yè)程序尤其是API沒有什么奇怪的,如移動的短信CMPP2.0和CMPP3.0的C的API,而且是在LINUX下的教常用的,還有就是直接發(fā)布RPM或者BIN等,以這種方式發(fā)布程序(不是API)

      QUOTE:
      因為PHP的數(shù)組是一種散列,二維數(shù)組的排序、遍歷等操作是非常慢的
      這里我建議看看PHP源碼目錄下的ext/standard/array.c,我想你不會對PHP的數(shù)組或者其他變量有偏見,PHP的變量是一個通用的C的結構

      QUOTE:
      對擴展來說不會獲得多大好處
      如果這樣說是肯定不對的,PHP的幾乎絕大部份函數(shù)和庫都是通過這種方法來寫的,包括array,socket,mysql,soap,curl等等,呵呵

      希望有更多有益的交流,謝謝!
      作者: hzjjw    時間: 2006-3-31 12:22 PM

      路過……
      有些收獲,不錯
      作者: 奶瓶    時間: 2006-3-31 01:22 PM

      發(fā)布商業(yè)的so正常 發(fā)布商業(yè)的so有點那個了

      PHP的數(shù)組絕對不是C的標準數(shù)組,當然散列也是標準結構
      數(shù)組的嚴格定義是在編譯前確定空間,長度,而且數(shù)組的下標有嚴格意義。

      手冊上的文字:
      PHP 中的數(shù)組實際上是一個有序圖。圖是一種把 values 映射到 keys 的類型。此類型在很多方面做了優(yōu)化,因此可以把它當成真正的數(shù)組來使用,或列表(矢量),散列表(是圖的一種實現(xiàn)),字典,集合,棧,隊列以及更多可能性。因為可以用另一個 PHP 數(shù)組作為值,也可以很容易地模擬樹。

      對于PHP數(shù)組的理解,嚴格定義上的數(shù)組和這類腳本數(shù)組不一樣,PHP的數(shù)組和Perl的類似,array.c中明確定義了數(shù)組是一種HashTable
      它的“二維”排序速度是很差的

      我知道php的功能都是在ext中,不過我想知道的是,在搜索的時候,你希望這個擴展來做什么?現(xiàn)有的不夠么?
      作者: fwolf    時間: 2006-4-1 06:20 PM

      思路不錯,可是否能夠附上各個平臺的ext如何生成?
      以及ext的一般編寫方式?
      作者: dot    時間: 2006-4-1 09:57 PM

      強貼。
      留名?;仡^繼續(xù)看。
      作者: HeTal    時間: 2006-4-3 06:25 PM

      稍后一定加上,
      不過只要自己看看手冊,上面有很詳細的說明了,到時我寫幾個常用的貼上來吧
      推薦PECL的mailparse這個擴展,好東西,還有其他的




      歡迎光臨 喜悅國際村 (http://www./happy/)

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多