PHP 와 PYTHON(파이썬) 파일 처리 속도 비교와 관련해서...
PHP 와 PYTHON(파이썬) 파일 처리 속도 비교와 관련해서...
- 다음은 PHP 파일처리 소스 입니다. -
<?
$s = "Its power : Python developers ...\n";
$str = "";
for($i = 0 ; $i < 5000 ; $i++){
$str .= $s;
}
$stime = explode(" ", microtime());
$fp = fopen('phptest.txt', 'w');
for($i = 0 ; $i < 10000 ; $i++){
fwrite($fp, $str);
}
fclose($fp);
$etime = explode(" ", microtime());
$difftime = ($etime[1] - $stime[1])+($etime[0] - $stime[0]);
echo $difftime;
?>
- 다음은 PYTHON(파이썬) 파일처리 소스 입니다. -
import time
#s = "Its power : Python developers ...\n" * 5000
# List로 처리시 속도 향상
s = "Its power : Python developers ...\n"
data = []
for i range(5000)
data.append(s)
res = ''.jon(s)
stime = time.time()
f = file('pythontime.txt', 'w')
for i in range(10000):
f.write(s)
f.close()
#if = file('pythontime.txt', 'r')
#s = f.read()
#print s
etime = time.time()
difftime = etime-stime
print difftime
=================================================
걸린 시간을 종합한 결과
PHP => 5000만 : 42.285706 // 6000만 : 97.791048
Python => 5000만 : 59.0355567932
PHP => 5000만 : 53.72122
Python => 5000만 : 50.3546209335
PHP => 5000만 : 39.445857
Python => 5000만 : 42.9307050705
PHP => 5000만 : 46.374381
Python => 5000만 : 41.997191906
PHP => 5000만 : 52.638139
Python => 5000만 : 48.46905303
PHP => 5000만 : 40.829847
Python => 5000만 : 38.6273369789
PHP => 5000만 : 44.710715
Python => 5000만 : 46.5043540001
몇번 수행하지 않았지만 그래도 평균을 냈습니다.
평균 PHP=> 45.882525
PYTHON=> 46.90241078535
알고 있기로는 PYTHON이 처리 시간이 더 적다고 들었는데요
평균시간을 보면 PHP가 더 빠르게 나오네요!!
더욱이 PHP는 웹에서 수행했고 PYTHON의 경우는 linux(서버)에서 수행했습니다.
당연히 PYTHON이 빨리 나올거라고 생각했는데요!!
제가 무슨 잘못한 부분이 있나요???
range를 xrange로
range를 xrange로 바꿔보세요. range는 직접 리스트를 생성하기 때문에 오래 걸리지만, xrange는 시작/끝만 기억합니다.
뭐... 그리고 좀더 공정하게(?) 하려면 쓰는 파일 이름도 똑같이 해야겠죠.
읔~ㅠ xrang 사용하고 나서 속도가 더 떨어지는...
읔~ㅠ xrang 사용하고 나서 속도가 더 떨어지는 문제가 발생했습니다.
다른곳에도 모두 xrange 가 속도가 좋다고 나오는데요.. ㅜ_ㅜa
음, 그럼 아예 while
음, 그럼 아예 while 루프로 바꿔보세요. (평소에 쓸 일이 거의 없는 방법이라서 큰 의미는 없지만...)
근데 1초 정도 차이가 그렇게 크리티컬한가요? 그리고 PHP하고 파이썬이 돌아가는 서버가 같은거죠?
그냥 목적에 맞는
그냥 목적에 맞는 언어를 쓰면 되는것 아닐까요?
둘 다 너무 하드웨어에 깊이 들어가지 말고 편하게 쓰자고 나온 스크립트 언어인데...
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
https://xenosi.de/
한 5년 전쯤 PHP, Java,
한 5년 전쯤 PHP, Java, Python, C++로 비슷한 테스트를 해보았었는데
뭐 테스트 조건에 차이도 좀 있었으리라 생각은 들지만
이상하게도 PHP가 제일 빨랐습니다.
http://www.exman.pe.kr
PHP태생 자체가 서버스크립트라..
웹에서 많이 사용한다고 웹전용언어이고 파일처리는 다른 인터프리터에 비해 느리다고 볼수많은
PHP태생 자체가 서버스크립트라..
테스트가 CPU bound인지
테스트가 CPU bound인지 IO bound인지부터 살펴봐야겠지만, 일단은
w = f.write
for i in range(10000):
w(s)
라고 하면 빨라지긴 할겁니다.
그렇지만, 어차피 둘다 같은 시스템 콜을 쓸텐데, 거기서 파일 처리 속도를 비교하는 것 자체가 크게 의미없다고 생각됩니다. 게다가 IO bound일 가능성이 큰 테스트이기 때문에, 언어의 차이가 큰 영향이 있을지도 의문이고요..
디렉토리 구조나 - 보통 요즘 파일 시스템은 같은 디렉토리 안의 파일들은 같은 실린더에 넣는다고 하던데 - 디렉토리 안에 파일이 얼마나 있는지 등이 더 영향이 클 것 같습니다.
그리고 결과를 보면 평균의 차이보다 편차가 훨씬 큰 편이라서 (저는 통계학을 전공하거나 하지는 않았지만) 저 테스트를 가지고도 php가 python보다 빠르다고 말할 수는 없을 것 같습니다.
댓글 달기