2012-10-16 29 views
9

Win8 uygulamasını TypeScript ile geliştiriyorum. TypeScript derleyici yavaş olur mu?

benim typescript kodunu derlemek için, ben winrt.d.ts eklendi ve winjs.d.ts sonra kullanarak onları başvurulan:

<reference path="winrt.d.ts" static="true" /> 
<reference path="winjs.d.ts" static="true" /> 

Derleme & inşa başardı ancak IDE IntelliSense çok yavaş ediliyordu. Sadece winrt.d.ts'u açtım ve dosyayı kontrol ettim. Dosyada, anında derlemek için çok büyük bir dosya olan 18.770 satır var.

lib.d.ts gibi yeniden derlenmeden bu büyük tanım dosyasına başvurmak için herhangi bir seçenek veya yöntem var mı?

Bu yavaşlık, ciddi olarak TypeScript seçimimi acıtıyor. GÜNCELLEME

: Mevcut derleyici sürümü (0.8.0) Açık

, hiçbir çözüm yoktur. Yakın gelecekteki sürümlerde en iyi performans artışını görmeyi umuyoruz.

GÜNCELLEME:

İşte

olan benim basitçe dev artırmak için kesmek. performans. Ben sadece winrt.compact.d.ts oluşturdum. Ardından, yalnızca kullanılan ad alanlarının bir kısmını kopyalayın ve dosyayı kaydedin.

Neyse ki dosya (winrt.d.ts) çeşitli bildirim dosyalarından oluşturulmaya benziyor. Yani her isim alanı, diğerlerinden açıkça ayrılan . WinRT için kompakt versiyon yapmak çok daha kolay.

cevap

2

Yanılıyorsam düzeltin, ancak derhal lib.d.ts'un derleyici tarafından özel olarak ele alındığını düşünmüyorum. Ben kaynak koduna bir göz attım ve burada lib.d.ts ile ilgilenen snippet'tir:

if(this.compilationSettings.useDefaultLib) { 
    var compilerFilePath = this.ioHost.getExecutingFilePath(); 
    var binDirPath = this.ioHost.dirName(compilerFilePath); 
    var libStrPath = this.ioHost.resolvePath(binDirPath + "\\lib.d.ts"); 
    code = new TypeScript.SourceUnit(libStrPath, null); 
    this.compilationEnvironment.code.push(code); 
}  

kullanıcı, sadece derlemek için kodunun ilk parçası olarak derleme ortamına eklenir dahil edilecek lib.d.ts isterse . opts.unnamed saklanan diğer tüm kaynak dosyaları (aynı şekilde eklenir:.

for(var i = 0; i < opts.unnamed.length; i++) { 
    code = new TypeScript.SourceUnit(opts.unnamed[i], null); 
    this.compilationEnvironment.code.push(code); 
} 

Yani lib.d.ts özel bir şekilde tedavi altına değilse o zaman bu konuda, ayrıca diğer (deklarasyon) dosyaları için değil mümkündür benim winrt.d.ts için rapor 18,770 den daha az yol olduğu 7677 hatları vardır lib.d.ts sistemi, bu yüzden derleyici kabul edilebilir hızını elde etmek için tüm hatları toplamı sadece çok fazla olabilir. bunun dışında

Diğer, benim sadece bir fikir, "başka bir şey" makinenizin yavaşlamasına neden olmasıdır. Bana kütüphanelerin bir bağlantı ve kodunuzun bir pasajını sağlarsanız, ben c En az bir derleme sisteminin sistemime ne kadar sürdüğünü ölçün.

2

Codeplex itibariyle bu soruna yönelik olağanüstü bir iş öğesi şu anda yok:

http://typescript.codeplex.com/workitem/265

(! Derleyici daha donanımı vermek hariç) şu anda bu sayıyı artırmak için yapabileceği bir şey Ama umarım iş öğesi vardır alınacak ve sorun çözülecek.