Melihat beberapa posting blog online tentang menyimpan Stream ke file,Banyak yang salah。 (Saya menemukan beberapa masalah: kinerja buruk, tidak normal saat aliran terlalu besar)
Setelah mendapatkan Stream, cara menyimpan Stream ini ke kode dengan elegan
Metode yang paling elegan harus melalui metode CopyTo atau CopyToAsync
di sini inputStream.Seek(0, SeekOrigin.Begin); Belum tentu, silahkan gunakan kode ini sesuai dengan kebutuhan Anda sendiri, seperti Anda hanya perlu menyalin aliran dari byte ke-10, dll
Menggunakan pendekatan asinkron akan memakan waktu sedikit lebih lama untuk penulisan ini, tetapi akan memberikan kinerja keseluruhan yang lebih baik dan memungkinkan CPU untuk menangani tugas lain
Perhatikan bahwa saat menggunakan CopyToAsync, ingatlah untuk menambahkan menunggu, saat mengeksekusi kode ini, Anda akan menyerahkan eksekusi ke IO, sebagian besar pemrosesan IO tidak memerlukan CPU untuk menghitung, sehingga kinerja keseluruhan bisa lebih baik
Juga, jika iputStream masuk dari luar, maka saya tidak merekomendasikan untuk merilisnya di dalam metode ini, mengapa? Saya menggunakan aliran yang bagus dan itu mati ketika saya lulus dalam bisnis
Metode kedua adalah mengontrol cache replikasi memori sendiri, yang akan memiliki salinan memori tambahan
Apa yang dilakukan metode ini adalah memungkinkan Anda untuk memodifikasi nilai byte baru[1024], memberi Anda kendali atas cache yang disalin
Selanjutnya adalah beberapa metode yang tidak disarankan, tetapi nyaman saat menulis
Metode di atas akan menyalin memori dua kali, dan jika panjang sumber daya input adalah 1G, itu akan menempati sumber daya 2G
Mirip dengan di atas adalah meminta cache besar, seperti yang ditunjukkan pada kode berikut
Dalam hal efisiensi dan keanggunan kode, mereka sebenarnya lebih rendah dari metode CopyTo, dan karena streaming. Panjang sebagai panjang tidak menentukan cache, jadi tidak sebaik metode kedua
Di bawah ini adalah metode super lambat, penulisan satu byte demi satu byte sangat lambat
Ditransfer dari:Login hyperlink terlihat. (Akhir)
|