يصل Go 1.20 مع دعم PGO التجريبي والتحسينات والمزيد

جولاند

Go هي لغة برمجة متزامنة ومترجمة مع كتابة ثابتة مستوحاة من بناء جملة C.

ال إصدار النسخة الجديدة من لغة البرمجة Go 1.20 ، التي يتم تطويرها بواسطة Google بمشاركة المجتمع كحل هجين يجمع بين الأداء العالي للغات المترجمة.

الإصدار الجديد من Go 1.20 استفاد من مرحلة تطوير ممتدة، أصبح ممكنًا من خلال الاختبارات المكثفة أعلاه واستقرار قاعدة الشفرة المحسّن بشكل عام.

ومن الجدير بالذكر أن المشروع تم تطويره مبدئيًا مع التركيز على البرمجة متعددة مؤشرات الترابط والتشغيل الفعال على الأنظمة متعددة النواة ، بما في ذلك توفير الوسائل التي تنفذها شركات النقل لتنظيم الحوسبة المتوازية والتفاعل بين الأساليب التي يتم تنفيذها بالتوازي. توفر اللغة أيضًا حماية مضمنة ضد فائض كتلة الذاكرة المخصصة وتوفر القدرة على استخدام أداة تجميع البيانات المهملة.

يعتمد بناء جملة Go على العناصر المألوفة للغة C مع بعض الاقتراض من لغة Oberon. اللغة موجزة للغاية ، لكن الشفرة سهلة القراءة والفهم.

الميزات الرئيسية الجديدة لـ Go 1.20

في هذا الإصدار الجديد من Go 1.20 الذي تم تقديمه ، تم إبراز أنه تم توفيرهo الدعم التجريبي للتحسين الموجه بالملف الشخصي (PGO) ، والتي تأخذ في الاعتبار الخصائص المحددة في وقت التشغيل. مع الأخذ بعين الاعتبار ملف تعريف التنفيذ أثناء التجميع ، يمكن تحسين أداء التطبيقات بنسبة 3-4٪. تمت إضافة خيار "-pgo" لتضمين PGO في go build و go install وأوامر الإنشاء الأخرى.

الجدة الأخرى التي تم تقديمها هي أن تمت إضافة وظائف SliceData و String و StringData إلى الحزمة غير الآمنة لعمليات المعالجة منخفضة المستوى مع المقاطع (المصفوفات ذات الحجم الديناميكي) والسلاسل (على سبيل المثال ، لتحويل منطقة الذاكرة المشار إليها بمؤشر إلى سلسلة من نوع السلسلة والعكس صحيح).

بالإضافة إلى ذلك ، تم تسليط الضوء أيضًا على أن الغلاف قد تم توسيعه مع إمكانية جمع ملفات تعريف للبرامج بشكل عام وليس فقط لاختبارات الوحدة ، كما تمت إضافة خيار "-cover" للانتقال إلى التجميع والتثبيت والأوامر الأخرى بناء لإنشاء ملف تعريف التغطية.

خدمة go من الارتباط بحزم المكتبة القياسية المترجمة مسبقًا الموجودة في الدليل $ GOROOT / pkg ، مما جعل من الممكن استبعادها من التوزيع وتحقيق تقليل في حجم البيانات التي تم تنزيلها. يتم الآن إنشاء حزم المكتبة القياسية ، مثل الحزم العادية ، حسب الحاجة ويتم تخزينها مؤقتًا في ذاكرة التخزين المؤقت للإصدار.

القيادة go يعطل استخدام حزمة cgo افتراضيًا على أنظمة بدون مجموعة من الأدوات لتجميع كود C. تستخدم هذه الأنظمة الآن متغيرات من حزم المكتبة القياسية في لغة Go ، بدلاً من استخدام الحزم المترجمة مسبقًا.

من التغييرات الأخرى التي تبرز من الإصدار الجديد:

  • تحتوي الأداة المساعدة البيطرية على تحذيرات إضافية حول مشاكل المتغيرات المستخدمة في الحلقات التي يتم اكتشافها عند إجراء الاختبارات بالتوازي.
  • يتم توسيع قواعد تحويل النوع مع إمكانية التحويل المباشر من مقطع إلى مصفوفة.
  • تحدد المواصفات بوضوح الترتيب الذي تتم فيه مقارنة عناصر المصفوفة وحقول البنية.
  • تمت إضافة حزمة التشفير / ecdh إلى المكتبة القياسية مع دعم تبادل مفاتيح ECDH (Elliptic Curve Diffie-Hellmann).
  • تمت إضافة نوع جديد من http.ResponseController لإنشاء وحدات تحكم استجابة HTTP غنية.
  • تمت إضافة وظيفة إعادة الكتابة إلى النوع HTPUTIL.ReverseProxy لتعديل الطلب.
  • تمت إضافة السياق مع وظيفة WithCancelCause ، والتي تسمح لك بإلغاء المكالمة بخطأ محدد.
  • تمت إضافة حقلي Cancel و WaitDelay إلى نوع os / exec.Cmd لتحديد السلوك عند إلغاء السياق أو إنهاء العملية.
  • تم تقليل استهلاك الذاكرة في المجمّع ومجمع البيانات المهملة وتحسين الأداء (تصل زيادة السرعة إلى 2٪).
  • تم العمل على تسريع عملية التجميع: يمكن أن يصل تقليل وقت الترجمة إلى 10٪.
  • تمت إضافة الدعم التجريبي لمنصة FreeBSD على الأنظمة ذات بنية RISC-V (GOOS = freebsd ، GOARCH = riscv64).

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.