Performance در تایپ اسکریپت یکی از موضوعاتی است که احتمال دارد توسعه‌دهندگان زیادی چالش‌هایی را با آن داشته باشند. از این رو، قصد داریم در این مقاله این مفهوم را باهم بررسی کنیم.

منظور از Performance در تایپ اسکریپت چیست؟

Performance در تایپ اسکریپت معیاری است که نشان می‌دهد تایپ اسکریپت چقدر سریع می‌تواند عمل type checking را در پایگاه کد ما انجام دهد. این معیاری است که بیان می‌کند ویرایشگر ما با چه سرعتی می‌تواند بازخوردی را در مورد کدی که داریم ارائه دهد.

البته باید به این نکته توجه داشته باشیم که performance معیاری برای سرعت اجرای کد ما نیست. زیرا تایپ اسکریپت یک ابزار compile-time است، نه یک ابزار runtime. بنابراین استفاده ساده از تایپ اسکریپت، سرعت اجرای کد جاوااسکریپتی منتشر شده را دچار تغییر نمی‌کند. زیرا، تایپ اسکریپت در زمان اجرا هیچ کاری انجام نمی‌دهد.

Performance پایین در تایپ اسکریپت چگونه است؟

وقتی performance پایین باشد، متوجه خواهیم شد:

به عبارت دیگر، کارهایی که هر روز انجام می‌دهیم کُندتر شده و همین موضوع باعث می‌شود تا کدنویسی سخت‌تر شود.

چه چیزی باعث performance پایین در تایپ اسکریپت می‌شود؟

Performance می‌تواند تحت تأثیر عوامل مختلفی قرار بگیرد.

اولین مورد، مقیاس است. به عبارت ساده‌تر، هرچه تایپ اسکریپت کد بیشتری را به صورت یکجا بررسی کند، کُندتر اجرا می‌شود. با این حال، اهمیت مقیاس اغلب کم‌تر از آن چیزی است که فکر می‌کنیم.

عامل دوم نحوه نوشتن کد ماست. استفاده از intersectionها به جای interfaceها، استفاده از رفرنس‌های پروژه و استفاده عاقلانه از تایپ‌های بازگشتی، همگی راه حل‌های مفیدی برای رسیدگی به مشکلات مربوط به performance هستند.

TypeScript Performance Wiki یک فهرست عالی از استراتژی‌هایی را ارائه می‌دهد که می‌توانیم از آن‌ها برای بهبود performance در پروژه‌های خود استفاده کنیم.

چگونه می‌توانیم performance را اندازه‌گیری کنیم؟

می‌توانیم از برخی flagهای tsc برای اندازه‌گیری performance استفاده کنیم.

با استفاده از tsc --diagnostics یا tsc --extendedDiagnostics می‌توانیم اطلاعاتی در مورد مدت زمانی که طول می‌کشد تا تایپ اسکریپت تایپ پایگاه کد ما را بررسی کند، بدست بیاوریم.

همینطور با اجرای tsc --generateTrace ./outDir، می‌توانیم یک فایل trace بسازیم و آن را در Trace Viewer Chrome باز کنیم تا ببینید زمان تایپ اسکریپت در کدام قسمت‌ها بیشتر سپری می‌شود