۳۰ شهریور ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

برو به رفع مشکل حلقه

تغییر در اجرای حلقه‌های for در Go 1.22 از اشکالات اشتراک‌گذاری تصادفی جلوگیری می‌کند. بهینه سازی زمان اجرا نیز در به روز رسانی افزایش یافته است.

تغییر در اجرای حلقه‌های for در Go 1.22 از اشکالات اشتراک‌گذاری تصادفی جلوگیری می‌کند. بهینه سازی زمان اجرا نیز در به روز رسانی افزایش یافته است.

زبان Go (golang) Google به نسخه ۱.۲۲ رسیده است و تغییراتی را در حلقه‌های for از جمله حل مشکلی که خطر اشتراک‌گذاری تصادفی متغیرهای حلقه را به همراه دارد، ایجاد می‌کند.

Go 1.22 منتشر شده در ۶ فوریه، از go.dev قابل دانلود و نصب است. یادداشت‌های انتشار برای Go 1.22 را می‌توانید در وب‌سایت پروژه پیدا کنید.

با Go 1.22، تیم Go آنچه را که حلقه for “gotcha” نامیده می شود، حل کرده است که منجر به اشتراک گذاری تصادفی متغیرهای حلقه می شود. در Go 1.22، هر تکرار از حلقه، متغیرهای جدیدی را برای جلوگیری از اشکالات اشتراک گذاری تصادفی ایجاد می کند. در تغییر دوم، حلقه‌های for در Go اکنون می‌توانند از اعداد صحیح متغیر باشند.

توسعه API ها و برنامه های کاربردی آماده اکوسیستم

همچنین در Go1.22، بهینه سازی زمان اجرا عملکرد CPU را ۱٪ تا ۳٪ بهبود می بخشد در حالی که سربار حافظه اکثر برنامه های Go را تا حدود ۱٪ کاهش می دهد. مجازی‌سازی بهبودیافته در ساخت‌های بهینه‌سازی هدایت‌شده پروفایل (PGO) نیز مشخص شده است که امکان ارسال استاتیک فراخوان‌های روش رابط را فراهم می‌کند. اکثر برنامه ها با فعال کردن PGO شاهد بهبود ۲٪ تا ۱۴٪ خواهند بود. PGO در Go 1.21 معرفی شد که در آگوست ۲۰۲۲ وارد شد.

مقدمه tRPC: TypeScript یکپارچه و تمام پشته

Go 1.22 همچنین بهبودهایی را در کتابخانه استاندارد به ارمغان می آورد. بسته math/rand/v2 یک API سازگارتر و تمیزتر ارائه می‌کند و از الگوریتم‌های تولید شبه تصادفی با کیفیت بالاتر و سریع‌تر استفاده می‌کند. همچنین، الگوهای مسیریابی HTTP که توسط net/http.ServeMux استفاده می‌شود، اکنون کارت‌ها و روش‌های وحشی را می‌پذیرند.

جاهای دیگر در Go 1.22:

  • فرمان‌های Go در فضاهای کاری اکنون می‌توانند از دایرکتوری فروشنده حاوی وابستگی‌های فضای کاری استفاده کنند.
  • واسط کاربری وب ابزار trace به عنوان بخشی از کار برای پشتیبانی از ردیاب جدید، حل چندین مشکل و بهبود خوانایی صفحات فرعی مختلف، به روز شده است.
  • رفتار ابزار vet برای مطابقت با معنای جدید متغیرهای حلقه در Go 1.22 تغییر کرده است. همچنین، vet اکنون یک تماس غیر معوق را به time.Since (t) در یک عبارت defer گزارش می‌کند.
  • در macOS در معماری ۶۴ بیتی، زنجیره ابزار Go اکنون به طور پیش فرض فایل های اجرایی مستقل از موقعیت تولید می کند.
  • Go 1.22 یک پورت آزمایشی به OpenBSD در PowerPC 64 بیتی بزرگ endian اضافه می کند.
فدرال‌رزروها به دنبال گواهی بر روی نرم‌افزار امن هستند

شاید به این مطالب علاقمند باشید