日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

php筆記之:有規(guī)律大文件的讀取與寫(xiě)入的分析_PHP教程

編輯Tag賺U幣

推薦:php筆記之:php數(shù)組相關(guān)函數(shù)的使用
本篇文章介紹了,php中數(shù)組相關(guān)函數(shù)的使用。需要的朋友參考下

這幾天在做一個(gè)東西.研究PHP讀取行數(shù)較多的文件(大概上百萬(wàn)行).考慮到效率問(wèn)題.進(jìn)行了簡(jiǎn)單的研究.總結(jié)如下

第一條.file()函數(shù)的效率問(wèn)題.

file()函數(shù)的效率很底下 如果是有規(guī)律的文件.比如每行一條相應(yīng)數(shù)據(jù).那么盡量不要是用file()函數(shù)

可以使用file_get_contents()然后用explode切割.這樣效率會(huì)快三分之一

舉個(gè)例子:

文件樣式如下:

11111\n

22222\n

33333\n

44444\n

55555\n

.....\n

nnnnnnnnnnn\n

如果用file($file)讀入的話.耗時(shí)很長(zhǎng).

可以用如下方法explode("\n",file_get_contents($file));效率會(huì)快很多.

第二條,數(shù)組的遍歷方式.

數(shù)據(jù)已經(jīng)被讀入數(shù)組了.下面就是遍歷了.

我所需要的是確定數(shù)組中有無(wú)一個(gè)值的存在,比如說(shuō)44444是否在數(shù)組中.首先想到的是in_array()

不過(guò)實(shí)驗(yàn)了下發(fā)現(xiàn)效率很低下.于是參考別人的代碼想到一個(gè)辦法.把數(shù)組翻轉(zhuǎn)過(guò)來(lái).變成所有值都為1.原來(lái)的值變成了索引.那么只要我在if里寫(xiě)($arr[索引]==1)去判斷.果然效率高出很多.

在數(shù)組的遍歷過(guò)程中.如果數(shù)組個(gè)頭非常大,并且數(shù)組中的數(shù)據(jù)并不是全能用到的話,最好把用來(lái)遍歷的數(shù)組抽出來(lái).這樣會(huì)提高很多效率.

第三條,數(shù)組的存儲(chǔ).

把計(jì)算過(guò)后的數(shù)據(jù)保存起來(lái).存在一個(gè)文件中.考慮了三種方法.一種是直接寫(xiě)成php文件.一種是serialize,一種是json串.

第一種方式

直接寫(xiě)入文件<?php 連接var_export($var)連接";"連接?>保存成PHP

需要的時(shí)候直接require進(jìn)來(lái).

第二種方式.把變量serialize然后file_put_contents()進(jìn)入文件.使用的時(shí)候unserialize就ok.

第三種方式和第二種類似.只不過(guò)寫(xiě)成了json串.

經(jīng)過(guò)測(cè)試.發(fā)現(xiàn)第二種效率最高.第三種其次.和第二種效率不相上下.第一種最慢.和我預(yù)想的差距很大.真是大跌眼鏡.

分享:php筆記之:php函數(shù)range() round()和list()的使用說(shuō)明
本篇文章介紹了,php函數(shù)range() round()和list()的使用說(shuō)明。需要的朋友參考下

來(lái)源:模板無(wú)憂//所屬分類:PHP教程/更新時(shí)間:2013-04-27
相關(guān)PHP教程