国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php有規(guī)律大文件的讀取與寫入

2024-05-04 21:53:23
字體:
供稿:網(wǎng)友

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

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

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

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

  舉個例子:

  文件樣式如下:

  11111/n

  22222/n

  33333/n

  44444/n

  55555/n

  ...../n

  nnnnnnnnnnn/n

  如果用file($file)讀入的話.耗時很長.

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

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

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

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

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

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

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

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

  第一種方式

  直接寫入文件保存成PHP

  需要的時候直接require進來.

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

  第三種方式和第二種類似.只不過寫成了json串.

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 仙游县| 莫力| 山东省| 体育| 宜阳县| 贺州市| 太原市| 凤山市| 龙泉市| 内江市| 门头沟区| 乾安县| 苍梧县| 子洲县| 镇雄县| 汉源县| 河池市| 五大连池市| 东兰县| 荃湾区| 社旗县| 中卫市| 丹阳市| 峡江县| 从江县| 中西区| 洛扎县| 大足县| 卓资县| 海盐县| 北票市| 且末县| 罗平县| 长治县| 岑溪市| 潞西市| 湘西| 阳高县| 故城县| 泾源县| 南宁市|