تیمی از دانشمندان کامپیوتر در دانشگاه ماساچوست آمهرست، به رهبری امری برگر، از یک پروفایلر پرقدرت پایتون به نام اسکیلین (Scalene) رونمایی کردند. برنامههایی که با پایتون نوشته میشوند بسیار کند هستند به طوری که حتی میتوانند تا شصتهزار برابر کندتر از کدهای نوشته شده در سایر زبانهای برنامهنویسی از قبیل C++ باشند و Scalene برای شناسایی دقیق علت تاخیر پایتون کار میکند و به برنامهنویسان اجازه میدهد کدهای خود را برای کارایی بالاتر عیبیابی و سادهسازی کنند.
پایتون، محبوبترین زبان برنامهنویسی به شدت کند است
زبانهای برنامهنویسی مختلفی وجود دارد، زبانهایی مانند C++، فورترن و جاوا از معروفترین زبانها هستند؛ اما در سالهای اخیر، یک زبان برنامهنویسی تقریباً در هر حوزهای حاضر شده است: پایتون!
برگر که استاد علوم کامپیوتر در دانشکده علوم کامپیوتر دانشگاه آمهرست است، میگوید: پایتون در عصر علم داده و ماشین بسیار محبوب شده چرا که بسیار کاربرپسند است.» این زبان با کتابخانههایی از ابزارهای آسان همراه است و یک سینتکس بصری و خوانا دارد که به کاربران اجازه میدهد تا به سرعت شروع به نوشتن کد کنند.
برگر افزود: «اما پایتون به شکل دیوانهکنندهای کند است و بهرهوری کمی دارد. به راحتی اجرای کدهای آن بین 100 تا 1000 برابر بیشتر از زبانهای دیگر زمان میبرد و برخی از برنامهها ممکن است حتی تا 60 هزار برابر در پایتون بیشتر طول بکشد!»
پروفایلرهای پایتون فقط بخشهای کند را نشان میدهند
برنامه نویسان مدتهاست که این موضوع را میدانند و برای کمک به مبارزه با ناکارآمدی پایتون، میتوانند از ابزارهایی به نام «پروفایلر» استفاده کنند. پروفایلرها برنامهها را اجرا میکنند و سپس مشخص میکنند که چرا و کدام قسمتها کند هستند.
بدین ترتیب متأسفانه پروفایلرهای موجود به شکل موثری به برنامهنویسان پایتون کمک نمیکنند. در بهترین حالت، آنها نشان میدهند که یک ناحیه از کد کند است و آن را به برنامهنویس واگذار میکنند تا بفهمد، در صورت هر کاری، چه کاری میتوان انجام داد.
تیم تحقیقاتی امری برگر که شامل دانشجویان فارغالتحصیل علوم کامپیوتر، سام استرن و خوان آلتمایر بود، Scalene را ساخت تا اولین پروفایلری باشد که نه تنها ناکارآمدیهای کد پایتون را بهطور دقیق شناسایی میکند، بلکه از هوش مصنوعی برای پیشنهاد چگونگی بهبود کد نیز استفاده میکند.
برگر میگوید: «Scalene ابتدا مشخص میکند که برنامه شما در کجا زمان را تلف میکند. این برنامه بر روی سه حوزه کلیدی CPU، GPU و حافظه تمرکز دارد که مسئول سرعت پایین پایتون هستند.
سپس وقتی که Scalene تشخیص داد پایتون در کجای کار با مشکل مواجه است، سپس از هوش مصنوعی استفاده میکند و با استفاده از همان فناوری زیربنای ChatGPT برای پیشنهاد راههایی برای بهینهسازی خطوط منفرد یا حتی گروه بندی کدها عمل میکند.
برگر میگوید: «این یک برنامه عملی است. این فقط یک سرعتسنج نیست که به شما بگوید ماشین شما چقدر سریع یا کند میرود، بلکه به شما میگوید که آیا میتوانید سریعتر حرکت کنید، چرا سرعت شما تحت تأثیر قرار گرفته است و برای رسیدن به حداکثر سرعت چه کاری میتوانید انجام دهید.»
آینده برنامه نویسی و تاثیر Scalene
برگر میگوید: «در آینده سختافزار کامپیوترها چندان سریعتر نمیشوند. بهبودهای آینده بیشتر از برنامه نویسی سریعتر و کارآمدتر حاصل میشود.»
Scalene در حال حاضر در حال استفاده گسترده است و از زمان رونمایی عمومی آن در گیتهاب بیش از 750 هزار بار دانلود شده است. تحقیقاتی که منجر به توسعه Scalene شد، توسط بنیاد ملی علوم پشتیبانی شد. مقالهای که این ابزار را معرفی کرد، در کنفرانس امسال USENIX در مورد طراحی و پیاده سازی سیستم عامل ظاهر شد و برنده بهترین جایزه این کنفرانس شد.