Apakah binding Python OpenDAL lebih lambat daripada Python?
- OpenDAL adalah lapisan akses data yang memungkinkan pengambilan data secara efisien dari berbagai layanan penyimpanan.
- Ada laporan bahwa binding Python OpenDAL lebih lambat daripada Python itu sendiri.
- Diajukan hipotesis bahwa penyebabnya bisa berupa cache internal Python, akselerasi pembacaan file, dan overhead tambahan dari PyO3.
Apakah layanan Fs OpenDAL lebih lambat daripada Python?
- Ini adalah masalah yang melibatkan berbagai elemen seperti Rust, OpenDAL, Python, dan PyO3.
- Ditemukan bahwa layanan fs OpenDAL yang diimplementasikan dengan Rust juga lebih lambat daripada Python.
Apakah Rust std fs lebih lambat daripada Python?
- OpenDAL mengimplementasikan layanan fs melalui
std::fs. - Dikonfirmasi bahwa implementasi yang menggunakan
std::fsmilik Rust juga lebih lambat daripada Python.
Apakah Rust std fs lebih lambat daripada Python? Serius!?
- Hasil bahwa Rust std fs lebih lambat daripada Python dipertanyakan.
- Mempelajari analisis system call menggunakan
strace. - Melalui analisis hasil
strace, tidak ditemukan alasan mengapa Python lebih cepat meskipun keduanya sama-sama menggunakanmmap.
Mengapa mmap digunakan di sini?
mmapdigunakan bukan hanya untuk memetakan file ke memori, tetapi juga untuk mengalokasikan area memori berukuran besar.- Saat meminta memori dengan
malloc,glibcmengalokasikan memori menggunakanmmap.
Apakah Python memiliki allocator memori yang sama dengan Rust?
- Python menggunakan allocator memori bernama
pymallocyang dioptimalkan untuk alokasi kecil. pymallocdioptimalkan untuk objek kecil, sementara untuk alokasi besar digunakanPyMem_RawMalloc()danPyMem_RawRealloc().
Apakah Rust lebih lambat daripada Python dengan allocator memori default?
mmapdicurigai sebagai penyebab masalah.- Ditemukan bahwa program Rust yang beralih ke
jemallocberjalan lebih cepat daripada Python.
Apakah Rust lebih lambat daripada Python hanya di komputer saya!
- Fakta bahwa Rust berjalan lebih lambat daripada Python hanya terjadi pada komputer tertentu.
- Disediakan informasi rinci tentang CPU dan memori.
- Menyesuaikan fitur mitigasi kerentanan CPU, Transparent Hugepage, dan afinitas inti CPU pun tidak mengubah hasil.
- Dengan program eBPF, dikonfirmasi bahwa Rust lebih lambat daripada Python bahkan pada level system call.
Apakah C lebih lambat daripada Python?
- Ditemukan bahwa versi yang diimplementasikan dalam C juga lebih lambat daripada Python.
Apakah C lebih lambat daripada Python? Tanpa offset yang ditentukan!
- Ditemukan adanya perbedaan offset pada area memori, dan performa program C ditingkatkan dengan menyesuaikan offset tersebut.
- Dikonfirmasi bahwa pada CPU AMD Ryzen, penurunan performa terjadi tanpa offset tertentu.
Apakah AMD Ryzen 9 5900X lambat tanpa offset yang ditentukan!
- Dikonfirmasi bahwa ini adalah masalah terkait CPU, dan seorang pengembang kernel ikut dalam diskusi.
- Melalui profiling menggunakan
perf, kembali dikonfirmasi bahwa penurunan performa terjadi tanpa offset.
Pendapat GN⁺: Poin terpenting dari tulisan ini adalah bahwa Rust dan C dapat berjalan lebih lambat daripada Python pada lingkungan hardware tertentu, dan hal ini dapat disebabkan oleh alokasi memori serta cara kerja spesifik CPU. Tulisan ini menunjukkan betapa kompleksnya interaksi antara hardware dan software melalui proses penelusuran berbagai faktor yang memengaruhi performa perangkat lunak. Penelusuran semacam ini memberikan pelajaran penting untuk menyelesaikan masalah tak terduga yang dapat muncul dalam dunia rekayasa perangkat lunak.
1 komentar
Opini Hacker News
Pendapat tentang premis yang membingungkan
Diskusi tentang flag fitur CPU
Tautan bug glibc terkait
Reaksi positif terhadap artikel
Penilaian tinggi terhadap artikel
Usulan untuk menyelesaikan masalah
Informasi tentang allocator default Rust
Hal yang dipertimbangkan pengembang Rust untuk peningkatan performa
Penjelasan tentang perbedaan CPU AMD dan Intel
Fakta bahwa artikel telah diteruskan kepada orang yang tepat