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

首頁 > 開發 > PHP > 正文

php筆記之:有規律大文件的讀取與寫入的分析

2024-05-04 23:07:58
字體:
來源:轉載
供稿:網友

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

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

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

可以使用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));效率會快很多.

第二條,數組的遍歷方式.

數據已經被讀入數組了.下面就是遍歷了.

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

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

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

第三條,數組的存儲.

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

第一種方式

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

需要的時候直接require進來.

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

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

經過測試.發現第二種效率最高.第三種其次.和第二種效率不相上下.第一種最慢.和我預想的差距很大.真是大跌眼鏡.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大名县| 西乌珠穆沁旗| 和顺县| 济阳县| 苍溪县| 茂名市| 陵川县| 莱西市| 临邑县| 武清区| 阿拉善左旗| 林芝县| 屯留县| 集贤县| 分宜县| 于都县| 印江| 蒲城县| 峨眉山市| 桂林市| 九江市| 金沙县| 蒙阴县| 仁怀市| 筠连县| 汉阴县| 久治县| 漳浦县| 桃园市| 浏阳市| 侯马市| 宿州市| 华容县| 太保市| 贡山| 崇礼县| 伊宁县| 嘉义市| 孟津县| 阿瓦提县| 邛崃市|