Tôi đang viết một chương trình có hiệu suất khá quan trọng, nhưng không quan trọng. Hiện tại tôi đang đọc văn bản từ một dòng FILE*
và tôi sử dụng fgets
để lấy từng dòng. Sau khi sử dụng một số công cụ hiệu suất, tôi đã nhận thấy rằng 20% đến 30% thời gian ứng dụng của tôi đang chạy, nó nằm trong số fgets
.Đọc một dòng đầu vào nhanh hơn fgets?
Có cách nào nhanh hơn để nhận một dòng văn bản không? Ứng dụng của tôi là đơn luồng không có ý định sử dụng nhiều luồng. Dữ liệu nhập có thể từ stdin hoặc từ một tệp. Cảm ơn trước.
Độ dài trung bình (và có thể stdev) của các dòng mà chương trình của bạn phân tích là gì? Điều này giúp xác định cách nhanh nhất để truy cập chúng. – Juliano
@Juliano, các dòng luôn nhỏ hơn 260 ký tự. Tôi đã tránh được một vòng lặp xây dựng đường dây. – dreamlax
Bạn có kiểm soát định dạng đầu vào không? Bạn có thể làm cho nó nhỏ gọn hơn? – Dave