SevkiBilge

PHP 8.4’te gelen yeni özellikler gerçekten performansı artırıyor mu?

EnginTureX
· 4 gün önce · 1 görüntülenme
Arkadaşlar merhaba, uzun süredir PHP ile proje geliştiriyorum ve 8.4 sürümünün çıkmasıyla birlikte özellikle "property hooks" ve "lazy objects" gibi yenilikler duyuruldu. Resmi dökümanlarda performans iyileştirmelerinden bahsediliyor ama benim kendi testlerimde pek bir sihir göremedim açıkçası. Mesela property hooks, getter/setter yazmayı kolaylaştırıyor ama her property'de tetiklenen bir fonksiyonun ek yük oluşturup oluşturmadığını merak ediyorum. Özellikle büyük veri kümeleriyle çalışırken bu tip soyutlamaların JIT derleyiciyle ne kadar optimize edildiğini test eden var mı? Benim denemelerimde, eski usul __get/__set magic metodlarına göre bariz bir hız farkı göremedim, hatta bazen daha yavaş çalışıyor gibi hissettim.

Bir diğer konu ise "lazy objects" özelliği. Dependency injection container'larda çok işe yarayacağı söyleniyor ama ben Symfony ile kullandığımda, obje oluşturma anını ertelemek yerine aslında proxy pattern'in bir alternatifi gibi geldi. Gerçekten bellek kullanımını düşürüyor mu, yoksa sadece syntax kolaylığı mı? Mesela bir e-ticaret projemde, kullanıcı detaylarını lazy load yapmayı denedim ama oturum yönetimi gibi kritik noktalarda beklenmedik null pointer hataları aldım. Bu konuda tecrübesi olan var mı, yoksa ben mi yanlış implemente ettim?

Son olarak, "new in initializers" yani constructor dışında property tanımlaması yapabilmek güzel bir kolaylık ama bunun JIT derleyiciyle etkileşimi nasıl? Zend Engine 8.4'teki opcode değişiklikleri sayesinde genel anlamda bir %10-15 performans artışı vaat ediliyor, ancak benim eski bir Laravel projesini 8.4'e taşıdığımda neredeyse hiçbir fark hissetmedim. Belki de doğru benchmark metodunu kullanmıyorumdur. Siz hangi araçlarla test ediyorsunuz? Blackfire.io mu yoksa Xdebug profiler mı daha sağlıklı sonuç veriyor? Merak ettiğim nokta, bu yenilikler gerçekten üretim ortamında can yakmayacak mı, yoksa abartıldığı kadar var mı? Yorumlarınızı bekliyorum.
1 yanıt
SevilKayaPlus
3 gün önce
Bizzat test ettiğim bir konu bu. Özellikle property hook ve asimetrik görünürlük gibi yenilikler işleri hem hızlandırdı hem de kod kalitesini artırdı. Performans farkını görmek için eski bir projeyi 8.4’e geçirip deneyebilirsiniz, farkı hissedeceksiniz.

Yanıt yazmak için giriş yapın.