Bu 2014 ve birkaç yıl çok geç. Hala benim açımdan:
IMHO bu tartışma orantısız bir şekilde patladı. Yukarıda belirtilen blog yayınından alıntı :
Underscore, Valentine ve wu gibi JavaScript yardımcı program kitaplıklarının çoğu “yerli ilk ikili yaklaşıma” dayanır. Bu yaklaşım, yalnızca yerel eşdeğeri desteklenmiyorsa vanilya JavaScript'e geri dönen yerel uygulamaları tercih eder. Ancak jsPerf ilginç bir eğilim ortaya koydu: bir dizi veya dizi benzeri koleksiyon üzerinde yineleme yapmanın en etkili yolu, yerel uygulamaları tamamen önlemek ve bunun yerine basit döngüler seçmektir.
"Basit döngüler" ve "vanilya Javascript", Array veya Object yöntemi uygulamalarından daha doğal. Tanrım ...
Tek bir hakikat kaynağına sahip olmak kesinlikle iyi olurdu, ama yok. Size başka türlü söylenmiş olsa bile, Vanilya Tanrısı yoktur canım. Üzgünüm. Gerçekten geçerli olan tek varsayım, hepimizin tüm önemli tarayıcılarda iyi performans göstermeyi amaçlayan, hepsinin aynı şeylerin farklı uygulamaları olduğunu bilerek Javascript kodu yazmamızdır. Başa çıkmak, hafifçe koymak için bir orospu. Ama ister beğen ister beğenmesin öncül bu.
Belki hepiniz twitterish performansı gerektiren büyük ölçekli projeler üzerinde çalışıyorsunuz, böylece saniyede bir liste üzerinden 850.000 (alt çizgi) ve 2.500.000 (lodash) yineleme arasındaki farkı gerçekten görüyorsunuz. şu anda !
Ben değilim. Demek istediğim, performans sorunlarını ele almak zorunda kaldığım projeler üzerinde çalıştım, ancak hiçbir zaman Undercore veya Lo-Dash tarafından çözülmediler ya da neden olmadılar. Ve uygulama ve performans (şu anda C ++ konuşuyoruz) gerçek farklılıklar elde edemez sürece bir yinelenebilir (nesne veya dizi, seyrek ya da değil!) Bir döngü diyelim, ben daha fazla rahatsız etmeyin zaten tartışılan bir kıyaslama platformunun sonuçlarına dayalı talepler .
Rhino'nun Array yöntemi uygulamalarını ateşe tek bir "ortaçağ döngü yönteminin daha iyi ve sonsuza dek ve daha iyi performans göstermeyeceği ve neyin" yapamayacağı bir şekilde tümüyle FF'deki ani dizi yöntemleri, düşünülen beyin sikişinden çok daha hızlıdır. Dostum, çalışma ortamınızı aldatarak çalışma ortamınızı aldatamazsınız! Bunu tanıtırken düşünün ...
senin yardımcı kemerin
... bir dahaki sefer.
Bu yüzden alakalı tutmak için:
- Yerel ish'den ödün vermeden kolaylık sağlıyorsanız Alt Çizgi'yi kullanın.
- Kolaylık içindeyseniz ve genişletilmiş özellik kataloğunu (derin kopya vb.) Seviyorsanız ve anlık performansa umutsuz ihtiyacınız varsa ve en önemlisi yerel API'nin gündemi en kısa sürede bir alternatife yerleşmeyi düşünmüyorsanız Lo-Dash'i kullanın görüşlü geçici çözümler. Bu da yakında olacak. Dönemi.
- Üçüncü bir çözüm bile var. DIY! Ortamlarınızı tanıyın. Tutarsızlıkları öğrenin. Onların (Oku John-David 'in ve Jeremy ' ler) kodu. Bir tutarlılık / uyumluluk katmanının neden gerçekten gerekli olduğunu ve iş akışınızı geliştirdiğini veya uygulamanızın performansını artırdığını açıklayamadan bunu veya bunu kullanmayın. Gereksinimlerinizin, kendinizi mükemmel bir şekilde yazabileceğiniz basit bir çoklu dolgudan memnun olması büyük olasılıktır. Her iki kütüphane de biraz şekerli sade vanilya. İkisi de sadece en tatlı pastayı kimin servis ettiği konusunda kavga ediyor . Ama inan bana, sonunda her ikisi de sadece su ile pişiyor. Vanilya Tanrısı yok, bu yüzden Vanilya papası olamaz, değil mi?
İhtiyaçlarınıza en uygun yaklaşımı seçin. Her zaman oldugu gibi. Ben her zaman görüşlü çalışma zamanı hileleri yerine gerçek uygulamalarda yedek tercih ederim ama bu bile bugünlerde bir zevk meselesi gibi görünüyor. Http://developer.mozilla.com ve http://caniuse.com gibi kaliteli kaynaklara bağlı kalmanız yeterli olacaktır.