2015-04-03 17 views
10

Süre özgürlük: Rust en çalıştırma sistemi ve yeşil-iş parçacığı modeli yarısında “merhaba dünya” statik ikili boyutunu kesip alt seviye kancaları standart kütüphaneye kapı açtı ki, tamamen kaldırılmış oldu. Aaron Turon tarafından hayata geçirildi.Rust neden yeşil iplik geçirme modelini kaldırdı; dezavantaj nedir?

http://blog.rust-lang.org/2015/01/09/Rust-1.0-alpha.html

yeşil-parçacığı modelinin dezavantajı nedir?

Neden bu kadar hızlı Erlang nedir?

+1

Java'da yerel parçacıklardan daha yavaşlardı. (.. Hatırladığım kadarıyla rağmen Erlang'ı LEVENT VM yeşil konuları kullanır onların kullanım durumları için hızlı yeterli gibi görünüyor Yani) –

+1

GáborBakos Erken JVM'lerle @ 1 vardı: N yeşil parçacığı, yani tüm N çalışır tek işletim sistemi iplik yoktu Java konuları. Doğal olarak bu çok çekirdekli işlemcilerden yararlanamaz. Hem Erlang, eski Rust, hem de Go, N işletim sistemi iş parçacıklarının M yeşil iş parçacığı çalıştırması için işbirliği yaptığı N: M iş parçacığını kullanır. – delnan

cevap

29

Erlang preemption yeşil konuları kullanır. Bu sadece Erlang'in bir VM'ye sahip olmasından dolayı mümkündür, bu da kod hotswap gibi başka birçok şeye izin verir. Ancak VM'li diller, sistem programlaması için uygun değildir, çünkü her zaman hem bellekte hem de işlem gücünde sabit bir yüke sahiptirler. Rust bir sistem programlama dilidir ve bu yüzden önemli bir çalışma zamanı sistemine sahip olamaz. Ayrıca, Erlang'ın hızlı olmadığını da eklemeliyim. Sayısal hesaplamalarda, örneğin, here numaralı telefondan çok etkisizdir. Eşzamanlılık modeli I/O işlemleri için yüksek verim sağlar, ancak bu farklı bir şeydir.

Yani uygulanabilir bir şekilde yeşil konuları desteklemek amacıyla bir dil çalışma zamanı tür olması gerekiyor. Çalışma zamanı kaldırılmasının Rust'taki nedenleri, ilgili RFC'da belirtilmiştir. Kısacası, o dönemde Rust'ta kullanılan çalışma zamanı modelinin, uygulama sorunları ve API'dan kaynaklanan genel kısıtlamalar nedeniyle yeterli faydaya sahip olmamakla birlikte, verimli ve iyileştirilmesi zor bir şekilde çalışmak zordur, bu yüzden hurdaya ayrılmıştır. Bildiğim kadarıyla, prensipte hiçbir şey birilerinin Rust için yeşil iplik tabanlı bir çalışma zamanı yazmasını önlüyor, henüz kimse bunu yapmadı.

+2

Doğru, ama Pas içlerinin bazı TLS kullanır ve Go veya Erlang yaptığı gibi OS parçacığı üzerinde yeşillik mutiplex imkansız çünkü biz henüz Rust yeşillik yok. Bunu çözmek için hala çalışmak zorundayız ... – DenisKolodin