2012-04-14 73 views
11

Tôi đã học về pystones ngày hôm nay và vì vậy tôi quyết định xem những môi trường khác nhau của tôi như thế nào. Tôi chạy pystones trên máy tính xách tay của tôi đang chạy cửa sổ trên trần kim loại và nhận được những kết quảTại sao python chậm hơn nhiều so với cửa sổ?

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from test import pystone 
>>> for i in range(0,10): 
... pystone.pystones() 
... 
(1.636334799754252, 30556.094026423627) 
(2.1157907919853756, 23631.82607155689) 
(2.5324817108003685, 19743.479207278437) 
(2.541626695533182, 19672.4405231788) 
(2.536022267835051, 19715.915208695682) 
(2.540327088340973, 19682.50475676099) 
(2.544761766911506, 19648.20465716261) 
(2.540296805235016, 19682.739393664764) 
(2.533851636391205, 19732.804905346253) 
(2.536483186973612, 19712.3325148696) 

Sau đó, tôi chạy nó trên một số Linux của chúng tôi máy ảo và có 2,7-3,4 lần hiệu suất tốt hơn. Vì vậy, tôi bị sa thải lên vmware Linux VM của tôi trên máy tính xách tay của tôi và reran các thử nghiệm cùng và nhận được những kết quả này:

Python 2.7.2+ (default, Oct 4 2011, 20:03:08) 
[GCC 4.6.1] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> for i in range(0,10): 
... pystone.pystones() 
... 
(1.75, 28571.428571428572) 
(1.17, 42735.042735042734) 
(1.6600000000000001, 30120.48192771084) 
(1.8399999999999999, 27173.913043478264) 
(1.8200000000000003, 27472.52747252747) 
(1.8099999999999987, 27624.30939226521) 
(1.3099999999999987, 38167.938931297744) 
(1.7800000000000011, 28089.88764044942) 
(1.8200000000000038, 27472.527472527414) 
(1.490000000000002, 33557.04697986573) 

tôi không thể hoàn toàn hiểu như thế nào linux VM chạy bên trong các cửa sổ cùng là thực sự FASTER hơn python chạy trên cùng một kim loại trần dưới cửa sổ.

Điều gì khác biệt về python trên các cửa sổ mà nó hoạt động chậm hơn trên hệ điều hành trống hơn là bên trong một máy ảo chạy Linux trên cùng một hộp?

  • Chi tiết nền tảng Windows Win7x64 32 bit python chạy trên cả hai nền tảng 32 bit Linux VM chạy nền tảng cửa sổ trong VMWare
+0

Phụ thuộc vào các quy trình khác đang chạy cùng một lúc. –

+2

libc khác nhau.* chạy * –

+5

Có phải Python đang chạy trong VM và trên Linux 64-bit không? Tôi thấy phiên bản windows là 32-bit. Đảm bảo bạn so sánh táo với táo. – agf

Trả lời

7

tôi không thể trả lời câu hỏi của bạn, tuy nhiên xem xét danh sách này những điều có thể tạo sự khác biệt:

  • Bạn đang sử dụng các phiên bản Python khác nhau. "2.7.2+" chỉ ra rằng Python Linux của bạn được xây dựng từ một thanh toán kiểm soát phiên bản chứ không phải là bản phát hành.

  • Chúng được biên dịch với các trình biên dịch khác nhau (và có thể có các mức tối ưu hóa có ý nghĩa khác nhau).

  • Bạn chưa đề cập đến việc sao chép nhiều điều này. Nó có thể tưởng tượng được nếu bạn không có.

  • Máy ảo của bạn có thể là thời gian không chính xác.

  • Bạn đang liên kết các triển khai khác nhau của các phụ thuộc của Python, đáng chú ý là libc như Ignacio Vazquez-Abrams chỉ ra.

  • Tôi không biết điểm chuẩn thực tế của pystone là gì, nhưng nhiều thứ hoạt động khác nhau - những thứ như xử lý unicode hoặc IO đĩa có thể là các yếu tố phụ thuộc vào hệ thống.

+0

tôi sao chép nó 3 lần trước khi tôi viết điều này. Yea, tôi đã không đề cập đến nó mặc dù. – boatcoder

3

Bạn có chạy phần mềm chống vi-rút trên hộp Windows đó không? Điều này có lẽ có thể giải thích nó. Cá nhân tôi muốn thêm Python, Cygwin và thư mục nguồn của tôi vào danh sách loại trừ chống vi-rút - Tôi nghĩ rằng tôi nhận được một tốc độ nhỏ nhưng đáng chú ý. Có lẽ điều đó giải thích kết quả của bạn.

+0

Không, không có phần mềm chống vi-rút. – boatcoder

2

Có sự cố tương tự trên cửa sổ 10 - đó là vì hậu vệ cửa sổ.

Tôi phải loại trừ các thư mục python và quá trình trong cài đặt bảo vệ cửa sổ và khởi động lại máy tính.

Trước: Tôi phải đợi như ~ 20 giây để chạy bất kỳ mã python nào - bây giờ là mili giây.

Các vấn đề liên quan