deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Go tabanlı AxonASP motoru, Classic ASP benchmark'larında Microsoft'un yerel cscript'ini geride bıraktı

dev.to'da yayımlanan bir benchmark yazısına göre, VBScript ve Classic ASP için Go ile yazılmış çapraz platform bir motor olan AxonASP, 23 Gang of Four desen testinde Microsoft'un yerel cscript.exe'sini geride bıraktı.

Go tabanlı AxonASP motoru, Classic ASP benchmark'larında Microsoft'un yerel cscript'ini geride bıraktı

Classic ASP'yi Windows'a bağlayan bağı koparan bir Go motoru

VBScript ve Classic ASP, var olduklarından beri Microsoft'un kendi çalıştırma yığınına zincirlendi: etkileşimli betikler cscript.exe üzerinden, web sayfaları ise IIS worker process üzerinden çalışıyor. dev.to'da yayımlanan bir benchmark makalesine göre, AxonASP adlı bir proje bu bağımlılığı, Go ile yazılmış ve Linux, macOS, BSD ile Windows üzerinde çalışan tek başına bir binary olarak dağıtılan bir çalıştırma motoruyla ortadan kaldırıyor — hiçbir Windows lisansı gerektirmeden.

Benchmark nasıl yapıldı

Makale, geliştirici Jeffrey Heping'in hazırladığı bir testi anlatıyor: Heping, 23 Gang of Four tasarım desenlerinin tamamını sınıflar, özyineleme, koleksiyonlar ve callback'lerle birlikte VBScript'e çevirdi. Aynı 23 dosya daha sonra Windows 11 üzerinde beş farklı ortamda çalıştırıldı ve her yinelemede sürecin tamamı ölçüldü: process'in başlatılması, kodun derlenmesi ve çalıştırılması.

Bildirilen ortalamalar:

  • Klasik sözdizimi modunda AxonASP (axonasp-cli): 0,092 saniye
  • Modern sözdizimi modunda AxonASP (axonasp-cli): 0,102 saniye
  • Microsoft'un yerel VBScript host'u cscript.exe: 0,107 saniye
  • dotnet runtime üzerinde VB.NET: 0,233 saniye
  • Python ile geliştirilmiş bir motor olan ASPPY: 0,247 saniye

Beş ortamın tümü 23 desen testini başarıyla geçti. AxonASP'nin klasik sözdizimi modu cscript.exe'den yaklaşık yüzde 14 daha hızlıydı; ancak bu testte aradaki fark birkaç milisaniyeyle sınırlı. Yazıda, ASPPY'nin doğru davrandığı ama hız, bellek ve işlemci kullanımında normal Python yorumlayıcı maliyetlerini taşıdığı belirtiliyor — derlenmiş bir Go binary'si yerine yorumlanan bir Python katmanı betik çalıştırdığında beklenen bir ödün.

Avantajın genişlediği yer

0,092 saniyelik değer komut satırında bir soğuk başlatma süresi: process'i başlatmayı ve betiği derlemeyi kapsıyor. Web yapılandırmalarında (axonasp-http ve axonasp-fastcgi) motor, VBScript veya JScript kodunu bellekte tutulan dahili bir bytecode temsiline ayrıştırıp derliyor; böylece sonraki HTTP istekleri ayrıştırma aşamasını tamamen atlıyor ve önbelleğe alınmış bytecode'u doğrudan çalıştırıyor. dev.to makalesi, bu tasarımın sürekli trafik altında AxonASP'ye IIS'nin geleneksel ISAPI çalıştırmasına kıyasla yapısal bir üstünlük sağladığını savunuyor — ancak CLI benchmark'ının yanında hiçbir web istek吞吐 verisi yayımlanmamış durumda.

Sadece bir web sunucusu değil, bir motor

AxonASP kendisini kesin bir web sunucusundan çok genel amaçlı bir çalıştırma motoru olarak konumlandırıyor. axonasp-cli binary'si, VBScript ve JScript'in desteklenen tüm platformlarda doğrudan terminalden çalıştırılmasını sağlıyor ve böylece VBScript fiilen artık bir HTTP host'una ya da bir Windows makinesine ihtiyaç duymayan çapraz platform bir otomasyon diline dönüşüyor.

Motor modüler Go kodu olarak yazıldığı için geliştiriciler AxonASP runtime'ını kendi derlenmiş Go uygulamalarına import edebilir ve üçüncü taraf binary'ler içinde yerel VBScript ve JScript çalıştırma kazanabilir. Makale, Jeffrey Heping'in bu modülerliği kullanarak Microsoft HTA (HTML Application) dosyalarını işletim sistemleri arasında yerel olarak çalıştıran motorlar geliştirdiğini ve bu dosyaları Windows'a olan bağımlılıklarından tamamen kopardığını bildiriyor.

Ona yönelmeden önce tartılması gerekenler

Bu rakamlar projenin kendi benchmark'ını belgeleyen tek bir dev.to yazısından geliyor, bağımsız bir denetimden değil. Donanım özellikleri, yineleme sayıları ve ortalamaların arkasındaki yöntem, her çalıştırmadaki yaşam döngüsü ölçümünün ötesinde ayrıntılandırılmamış durumda; ayrıca web iş yüklerine ilişkin iddia, yayımlanmış istek düzeyinde ölçümlerden çok önbellekleme mimarisine dayanıyor.

Neden önemli

Çok sayıda kuruluş hâlâ Classic ASP ve VBScript varlıklarını sürdürüyor ve alışılmış seçenekler — modern bir yığında yeniden yazmak ya da süresiz olarak Windows hosting bedeli ödemek — ikisi de pahalı. Aynı kodu daha hızlı çalıştıran, herhangi bir container ya da deployment pipeline'ında çalışan ve Go binary'lerinin içine gömülebilen çapraz platform bir motor üçüncü bir yol sunuyor: iş yüklerini yeniden yazmadan Windows'tan taşımak. Sonuçlar bağımsız testler altında da doğrulanırsa, AxonASP eski VBScript'i yalnızca korunması gereken değil, yeniden dağıtılabilen, otomatikleştirilebilen ve gömülebilen bir şeye dönüştürüyor.

  • #vbscript
  • #classic-asp
  • #golang
  • #legacy-migration
  • #benchmarks

İlgili yazılar