Rumah > pembangunan bahagian belakang > C++ > Mengapakah `cin` C jauh lebih perlahan daripada Input Python dan Bagaimana Ia Boleh Diperbaiki?

Mengapakah `cin` C jauh lebih perlahan daripada Input Python dan Bagaimana Ia Boleh Diperbaiki?

Barbara Streisand
Lepaskan: 2025-01-04 08:04:34
asal
730 orang telah melayarinya

Why is C  's `cin` Significantly Slower than Python's Input, and How Can It Be Improved?

Mengapa Membaca Baris dari stdin Jauh Lebih Lambat dalam C berbanding Python

Semasa membandingkan kelajuan bacaan input dalam Python dan C , diperhatikan bahawa kod C melakukan susunan magnitud lebih perlahan.

Kekurangan cin Penimbalan

Percanggahan ini timbul daripada perbezaan asas dalam tingkah laku lalai. cin dalam C , secara lalai, disegerakkan dengan input/output standard (stdio), menyebabkan ia melepaskan penimbalan input, mengakibatkan pembacaan aksara satu demi satu, proses yang mahal dari segi panggilan sistem.

Penyelesaian: Lumpuhkan Penyegerakan

Untuk meningkatkan prestasi, penyegerakan cin dengan stdio boleh dilumpuhkan dengan menambah baris berikut pada permulaan program:

std::ios_base::sync_with_stdio(false);
Salin selepas log masuk

Ini membolehkan aliran C menimbal I/O secara bebas, meningkatkan kelajuan bacaan dengan ketara.

Tinjauan straw untuk menggambarkan perbezaannya:

Implementation Lines per second
Python (default) 3,571,428
cin (default/naive) 819,672
cin (no sync) 12,500,000
fgets 14,285,714
wc (unfair comparison) 54,644,808

Jadual ini menunjukkan perbezaan besar dalam kelajuan membaca apabila penyegerakan cin dilumpuhkan.

Atas ialah kandungan terperinci Mengapakah `cin` C jauh lebih perlahan daripada Input Python dan Bagaimana Ia Boleh Diperbaiki?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan