Hướng dẫn is c faster than java and python? - c có nhanh hơn java và python không?

Python và Java là hai trong số những ngôn ngữ lập trình phổ biến và mạnh mẽ nhất. Java thường nhanh hơn và hiệu quả hơn Python vì nó là ngôn ngữ được biên dịch. Là một ngôn ngữ được giải thích, Python có cú pháp đơn giản hơn, ngắn gọn hơn Java. Nó có thể thực hiện chức năng tương tự như Java trong ít dòng mã hơn.

Tốc độ và hiệu quả khác biệt giữa Python so với Java

Hiệu quả của Java, phần lớn đến từ trình biên dịch chỉ trong thời gian (JIT) và hỗ trợ cho sự đồng thời. Trình biên dịch JIT là một phần của môi trường thời gian chạy Java. Nó cải thiện hiệu suất của các chương trình Java bằng cách biên dịch mã byte vào mã máy gốc, chỉ trong thời gian để chạy. Máy ảo Java (JVM) gọi trực tiếp mã được biên dịch. Vì mã không được giải thích, việc biên dịch không yêu cầu sử dụng thời gian và bộ nhớ của bộ xử lý. Về mặt lý thuyết, điều này có thể làm cho một chương trình Java nhanh như một ứng dụng gốc.

Trong khi các chương trình Java được biên soạn trực tiếp, Python được giải thích làm chậm các chương trình Python trong thời gian chạy. Xác định loại biến xảy ra trong thời gian chạy làm tăng khối lượng công việc của trình thông dịch. Ngoài ra, việc ghi nhớ loại đối tượng của các đối tượng được lấy từ các đối tượng container góp phần sử dụng bộ nhớ.

Sửa lỗi trong Python vs Java

Trong Python, bất kỳ lỗi nào được giới thiệu bởi lập trình viên sẽ không được tìm thấy cho đến khi dòng mã đó được kích hoạt. Điều này có thể rủi ro phân tích hoạt động và kéo dài thời gian quay vòng. Trong khi Python để lại các đối tượng dễ bị đột biến, trong các đột biến đối tượng Java là không thể. Điều này dẫn đến bảo mật phát triển phần mềm.

Các nền tảng tích hợp như Snaplogic cho phép Python và Java giải quyết các vấn đề cùng nhau. SnapLogic cung cấp các công cụ để kết nối các ứng dụng và nguồn dữ liệu của đám mây, tại chỗ và lai khác nhau. Tìm hiểu thêm về kịch bản Python so với lập trình và so sánh SnapLogic với các nền tảng tích hợp khác.

Hướng dẫn is c faster than java and python? - c có nhanh hơn java và python không?

Có một niềm tin rộng rãi giữa các lập trình viên rằng ngôn ngữ càng năng động và lỏng lẻo hơn, lập trình viên sẽ càng có năng suất trong đó. Guido Van Rossum đã viết về năng suất lập trình bằng Python vào năm 1998 và tìm kiếm trên web Tôi vẫn thấy mọi người tham khảo tuyên bố chính xác này:

Về mặt cú pháp, mã Python trông giống như mã giả có thể thực thi. Phát triển chương trình sử dụng Python nhanh hơn 5-10 lần so với sử dụng C/C ++ và nhanh hơn 3-5 lần so với sử dụng Java. Trong nhiều trường hợp, một nguyên mẫu của một ứng dụng có thể được viết bằng Python mà không cần viết bất kỳ mã C/C ++/Java nào. Thông thường, nguyên mẫu đủ chức năng và hoạt động đủ tốt để được phân phối dưới dạng sản phẩm cuối cùng, tiết kiệm thời gian phát triển đáng kể. Những lần khác, nguyên mẫu có thể được dịch một phần hoặc toàn bộ thành C ++ hoặc Java-bản chất hướng đối tượng của Python làm cho bản dịch trở thành một quá trình đơn giản.

Vấn đề này đã được đánh giá khoa học đúng cách chưa? Nếu không phải là Python thì có lẽ đối với các ngôn ngữ kịch bản anh chị em như Ruby, Perl hay PHP?

Tôi không tìm kiếm sự hợp lý hóa, tương tự hoặc giải thích tại sao nó có khả năng khó trả lời, trừ khi đó là ý kiến ​​của các nhà nghiên cứu hoặc chuyên gia đã dành thời gian để xem xét vấn đề.

Ban đầu tôi đã hỏi câu hỏi này tại những người hoài nghi., Và ai đó đề nghị tôi cũng nên hỏi nó ở đây.

Hỏi ngày 17 tháng 4 năm 2011 lúc 8:42Apr 17, 2011 at 8:42

14

Bài viết của Ousterhout1 về các ngôn ngữ kịch bản cho thấy mức độ càng cao mà lập trình diễn ra, lập trình viên càng năng suất. Nếu chúng ta lấy điều đó, như Boehm nói2, số lượng dòng mà một lập trình viên có thể viết trong một thời gian nhất định là không đổi và không phụ thuộc vào ngôn ngữ hoặc loại của nó (cấp thấp, lập trình hệ thống, kịch bản), người ta có thể dễ dàng tin vào tuyên bố. Các hướng dẫn kết quả cho mỗi mã-mã-dòng -Ratio có thể là một thứ tự cường độ (hoặc một số) tốt hơn với các ngôn ngữ kịch bản so với các ngôn ngữ lập trình hệ thống.

Vì các ngôn ngữ kịch bản phụ thuộc rất nhiều vào các tiện ích làm sẵn cho các tác vụ chung (ví dụ: cấu trúc dữ liệu, thao tác chuỗi), việc sử dụng chính của chúng thường là nâng cao năng suất với chi phí tốc độ chạy chậm hơn bằng cách cung cấp một cú pháp dễ học và hiệu quả để bảo trì các chương trình với. Người ta không dùng đến ngôn ngữ kịch bản khi cần tốc độ thực thi hàng đầu.

.
[2]: B. Boehm, Software Engineering Economics, Prentice Hall, 1981

Đã trả lời ngày 17 tháng 4 năm 2011 lúc 12:26Apr 17, 2011 at 12:26

JawajawaJawa

2922 Huy hiệu bạc7 Huy hiệu Đồng2 silver badges7 bronze badges

5

Nếu bạn đo lường năng suất là "thời gian để viết một chương trình đơn giản cụ thể" thì nó phụ thuộc rất nhiều vào trải nghiệm của lập trình viên và tâm trí nhanh hơn ngôn ngữ mà bạn thực sự đánh giá lập trình viên chứ không phải ngôn ngữ."time to write a specific simple program" then it depends so much more on programmer experience and quick mind than the language that you are really evaluating the programmer, not the language.

Tôi tin rằng các cuộc thi mã theo thời gian chỉ ra rằng ngôn ngữ không thực sự quan trọng đối với các loại nhiệm vụ đó. Không có một ngôn ngữ nào giành được những thách thức như vậy dễ dàng hơn những người khác (ít nhất là không nếu bạn cho phép sự phổ biến tương đối của các ngôn ngữ).

Nếu bạn đo lường hiệu suất là "hiệu quả của chương trình tốt nhất" được viết bằng một ngôn ngữ nhất định, thì nó thậm chí còn ít phụ thuộc vào ngôn ngữ. Xem ví dụ kết quả của cuộc thi Galcon AI. Người chiến thắng được viết bằng Lisp. Mục nhập LISP tiếp theo, tuy nhiên, được xếp hạng #280. Điều này cho chúng ta biết gì về sự phù hợp của ngôn ngữ để viết AI tuyệt vời một cách hiệu quả? Theo tôi, không có gì. Nó chỉ cho chúng ta biết rằng "Bocsimacko" đã đưa ra và thực hiện các thuật toán hiệu quả nhất. Đối với hồ sơ, thời gian không phải là một yếu tố chính trong cuộc thi này - mọi người đã có hơn hai tháng để phát triển mã của họ."the effectiveness of the best program" written in a given language, then it's even less language-dependent. See for example the results of the Galcon AI contest. The winner is written in Lisp. The next Lisp entry, however, is ranked #280. What does this tell us about the language's suitability for writing great AI efficiently? In my opinion, nothing. It just tells us that "bocsimacko" came up with and implemented the most effective algorithms. For the record, time was not a major factor in this contest - people had more than two months to develop their code.

Cuối cùng, nếu bạn đo lường hiệu suất là "chi phí dài hạn để duy trì một dự án" thì tôi nghĩ rằng bạn đang ở một cái gì đó. Đặc biệt nếu bạn chỉ thuê những người giỏi nhất cho công việc, và tính chi phí theo giờ thay vì đô la. Tôi có một ý kiến ​​mạnh mẽ về ngôn ngữ nào là tốt nhất cho việc này, nhưng không có bằng chứng khó khăn để liên kết bạn với tôi sẽ bỏ qua ý kiến ​​này. Có lẽ ai đó có liên kết cho loại hiệu suất này."long-term cost of maintaining a project" then I think you're onto something. Especially if you hire only the best people for the job, and count cost in man-hours rather than dollars. I have a strong opinion on which languages are best for this, but having no hard evidence to link you to I'll leave this opinion out. Perhaps someone else has links for this type of performance.

Đã trả lời ngày 17 tháng 4 năm 2011 lúc 13:19Apr 17, 2011 at 13:19

Hướng dẫn is c faster than java and python? - c có nhanh hơn java và python không?

Roman Starkovroman StarkovRoman Starkov

4.4492 Huy hiệu vàng31 Huy hiệu bạc38 Huy hiệu Đồng2 gold badges31 silver badges38 bronze badges

3

http://page.mi.fu-berlin.de/prechelt/biblio/jccpprttr.pdf là một trong số ít các nghiên cứu mà tôi biết về điều đó đã so sánh trực tiếp thực tế giữa năng suất trong các ngôn ngữ khác nhau. Nó là cũ, nhưng đáng đọc nếu bạn thấy chủ đề thú vị. Việc so sánh có một số thiếu sót lớn mà bài viết rất trung thực.

Kết quả tổng thể là các ngôn ngữ cấp thấp (ví dụ: C, C ++) mất nhiều thời gian hơn để viết, có thể mất ít bộ nhớ hơn và có thể chạy nhanh hơn nhiều. Nhưng với sự biến đổi rất cao. Các ngôn ngữ kịch bản cấp cao có xu hướng mất một nửa thời gian để viết và có ít sự thay đổi trong cách tiếp cận. Ở một mức độ đáng ngạc nhiên ban đầu, có xu hướng có một cách rõ ràng để làm điều gì đó bằng ngôn ngữ kịch bản.

Lưu ý rằng tất cả các số hiệu suất cho Java nên được thực hiện với một hạt muối chính - giấy được sản xuất vào những năm 90 trước khi mọi người có nhiều kinh nghiệm với Java, và trước khi JVM được tối ưu hóa tốt. Cả hai yếu tố nên có tác động đáng kể.

Đã trả lời ngày 17 tháng 4 năm 2011 lúc 15:30Apr 17, 2011 at 15:30

Hướng dẫn is c faster than java and python? - c có nhanh hơn java và python không?

Btillybtillybtilly

Huy hiệu vàng 18.2K11 gold badge47 silver badges74 bronze badges

0

Nói chung, viết một chương trình bằng Python thường sẽ nhanh hơn là viết cùng một chương trình bằng C, C ++, Java.

Nó cũng có khả năng chạy chậm hơn.

Tất nhiên, có các ứng dụng cụ thể mà các ngôn ngữ khác có thể nhanh hơn bởi vì một số nhiệm vụ được giao nhiệm vụ liên quan được hỗ trợ 'tự nhiên hơn'.

Mặc dù tôi không biết về bất kỳ nghiên cứu nào để xác nhận sự gia tăng tốc độ/năng suất này (như một người bình luận đã đề cập, điều này có thể khó khăn để đo lường chính xác), đã có nghiên cứu trực tiếp về tính biểu cảm của ngôn ngữ.

Tôi nghĩ rằng có một số giá trị cho mối tương quan giữa biểu cảm ngôn ngữ và tốc độ lập trình. Chỉ cần hình dung một mẫu lặp đơn giản và làm thế nào một vòng lặp pythonic hoặc sự hiểu biết danh sách có thể ngắn gọn hơn. Nó không chỉ có thể được gõ ngay lập tức nhanh hơn, mà còn loại bỏ các mối quan tâm của các lỗi ngoài một, các chỉ số ngoài giới hạn và các vấn đề khác có thể làm chậm đáng kể quá trình mã hóa.

Điều này cho thấy một bảng một ước tính cho tỷ lệ biểu cảm của các ngôn ngữ. Mặc dù nó nên được thực hiện với một hạt muối, nhưng những chú thích mà nó đề cập là rất đáng giá.

http://en.wikipedia.org/wiki/Comparison_of_programming_languages#Expressiveness

Đã trả lời ngày 17 tháng 4 năm 2011 lúc 14:28Apr 17, 2011 at 14:28

Lần trước tôi đã sử dụng Java (một thời gian trước đã thừa nhận), nó đã lấy một màn hình đầy mã để mở và ghi vào một tệp. So sánh điều đó với một vài dòng trong Python hoặc Perl, và bạn có thể đoán được cái nào nhanh hơn.

Rõ ràng các ngôn ngữ đều có điểm mạnh và điểm yếu của riêng họ, nhưng đối với hầu hết các nhiệm vụ, Python sẽ nhanh hơn để viết.

Đã trả lời ngày 31 tháng 12 năm 2012 lúc 13:48Dec 31, 2012 at 13:48

Hướng dẫn is c faster than java and python? - c có nhanh hơn java và python không?

wobbily_colwobbily_colwobbily_col

1.8113 huy hiệu vàng16 Huy hiệu bạc24 Huy hiệu đồng3 gold badges16 silver badges24 bronze badges

3

C có chạy nhanh hơn Python không?

C/C ++ tương đối nhanh so với Python vì khi bạn chạy tập lệnh Python, trình thông dịch của nó sẽ diễn giải dòng tập lệnh theo từng dòng và tạo đầu ra nhưng trong C, trình biên dịch trước tiên sẽ biên dịch nó và tạo ra đầu ra được tối ưu hóa đối với phần cứng. because when you run the Python script, its interpreter will interpret the script line by line and generate output but in C, the compiler will first compile it and generate an output which is optimized with respect to the hardware.

Cái nào nhanh hơn C Java hay Python?

Python và Java là hai trong số những ngôn ngữ lập trình phổ biến và mạnh mẽ nhất.Java thường nhanh hơn và hiệu quả hơn Python vì nó là ngôn ngữ được biên dịch.Là một ngôn ngữ được giải thích, Python có cú pháp đơn giản hơn, ngắn gọn hơn Java.Java is generally faster and more efficient than Python because it is a compiled language. As an interpreted language, Python has simpler, more concise syntax than Java.

Tại sao Python chậm hơn C và Java?

Mã Python bên trong được giải thích trong thời gian chạy thay vì được biên dịch thành mã gốc do đó nó chậm hơn một chút.Chạy tập lệnh Python V/S chạy mã C/C ++: Python: Đầu tiên nó được biên dịch thành mã byte.Mã byte này sau đó được giải thích và thực thi bởi PVM (máy ảo Python). hence it is a bit slower. Running of Python script v/s running of C/C++ code: Python: First it is compiled into Byte Code. This Byte Code is then interpreted and executed by the PVM (Python Virtual Machine).

C có chạy nhanh hơn Java không?

C là một ngôn ngữ thủ tục, cấp thấp và ngôn ngữ được biên dịch.Java là một ngôn ngữ hướng đối tượng, cấp cao và ngôn ngữ được giải thích.Java sử dụng các đối tượng, trong khi C sử dụng các chức năng.Java dễ học và sử dụng hơn vì nó ở cấp độ cao, trong khi C có thể thực hiện nhiều hơn và thực hiện nhanh hơn vì nó gần với mã máy hơn.C can do more and perform faster because it's closer to machine code.