bazı işlevler OCaml uygulamak (örneğin, bir listeden harita) ancak OCaml kütüphanesinin haritası kullanılabilir gerçekten kolaydır: biz merak edebilir,OCaml modülleri ve performans
Ancak List.map hangi kod daha verimli olacak. Ayrı bir derleme biriminin (kitaplık) bir modülünü çağırmak, bazı olası en iyileştirmeleri geçersiz kılabilir. Fa.caml haber grubunu okudum kütüphanelerden fonksiyon çağırırken kapaklar kullanılır.
Genel programlama yapmak için Modüller ve Eğlence Programları kullanan üretimde OCaml kodu var. Tarihsel sebepten dolayı kodum monolitik: hepsi bir arada. Şimdi daha fazla zamanım var, kodu bu tür modüller için dosyalara ayırmaya istekliyim. Ancak, korkarım ki performansımı kaybedebilirim, çünkü bunu doğru yapmak için biraz zaman harcadım. Örneğin, karmaşık nesneleri sayılar ile sarmak için modüllerim var, bu yüzden benzersiz sunum ve hızlı karşılaştırmayı zorluyorum. Bu sarılı nesneleri genel Haritalar, Kümeler ile kullanıyorum ve üzerlerine önbellekler yapıyorum.
soru vardır: Ben dosyalarını ayırmak için taşırsanız
- mıyım performansı gevşek olacak?
- OCaml, modüller, functor'lar vb. Ile dolu kodumda birçok optimizasyon yapıyor mu?
C++ 'da, sınıf yöntemini bir .h olarak tanımlarsanız, derleyici kısa yöntemlere satır ekleyebilir, vb. Ayrılmış dosyaları kullanarak OCaml'de bunu başarmak mümkün müdür?
Ocaml derleyici ve linker içersinde çok fazla bilgim yok, bu yüzden sorunuza cevap veremiyorum. Ancak, kodunuzu modüllere ayırmaktan herhangi bir performans kaybettiyseniz çok şaşırırım. Birkaç milisaniye kaybetmiş olsanız bile, kodunuzun artan netliği de buna değecektir. –
C/C++ 'da bu büyük bir değişikliğe neden olabilir. Milyonlarca nesneye sahibim, milyonlarca kez eriştim/karşılaştırdım. Her bir erişim için bir dizi referans referansı çok kötü olabilir. – hectorpal
Evet, ancak derleyici bu referansları satır içi olarak göstermelidir, böylece gerekli olandan daha fazla arama yapmazsınız. Bir sürü sahte modülden bir test projesi yapmaya çalışıp, onları koparmakla aynı dosyada tutmak arasında bir fark olup olmadığını ölçmeye çalışın. Çalışma kod tabanınızı yeniden düzenlemekten çok daha az iş olabilir. Umarım bu, akıllı telefonun kodunuzu akıllıca optimize edebileceği konusunda size biraz daha güven verecektir. –