راهنمای نهایی برای آزمایش موازی در GO: -P ، -PALLY و T.PALLALL () demystified

GO سه روش برای تغییر موازی در آزمون ها دارد:
-
-p
پرچم -
-parallel
پرچم -
t.Parallel()
تماس تابع
چند نفر از شما می دانید که آنها چه کاری انجام می دهند؟ چرا ما به هر سه مورد نیاز داریم؟ : slud_smile:
معلوم است -p
کنترل می کند “چند بسته آزمایشی می تواند به صورت موازی اجرا شود”. -parallel
تعیین می کند “چند عملکرد تست در داخل یک بسته آزمایشی واحد می تواند به صورت موازی اجرا شود” و در آخر ، t.Parallel()
یک عملکرد تست را نشان می دهد و به GO می گوید که می تواند به موازات سایر توابع در همان بسته اجرا شود.
مثال 1
مثال: بیایید بگوییم که ما 999 بسته با 999 کارکرد تست داریم ، اما یک عملکرد تست واحد از آن استفاده نمی کند t.Parallel()
بشر چه اتفاقی خواهد افتاد؟
پاسخ: N
بسته های تست به طور موازی اجرا می شوند (از کجا N
برابر با تعداد هسته های CPU است) ، اما هر بسته توابع آزمایش خود را به صورت متوالی اجرا می کند. بنابراین ، N
توابع آزمون به صورت موازی اجرا می شوند.
مثال 2
مثال دیگر: همان سناریو ، اما ما اضافه می کنیم -p 1
بشر چه اتفاقی خواهد افتاد؟
پاسخ: اجرای کاملاً متوالی.
مثال 3
یک مثال دیگر: مانند گذشته ، اما این بار اضافه می کنیم t.Parallel()
بشر خوب t.Parallel()
همراه با -p 1
منجر به “فقط یک بسته به طور همزمان اجرا می شود ، اما N
توابع تست به طور موازی اجرا می شوند ، “کجا N
دوباره تعداد هسته های CPU است.
پایان
با استفاده از هر سه کنترل ریز و درشت انجام می شود: -p X -parallel Y
وت t.Parallel()
بشر
ما باید با آزمایش های مطبوع مراقب باشیم (طبق معمول ، حالت ریشه همه شر است ، اما اجتناب از آن غیرممکن است).
زبان برنامه نویسی Neva
برو توسعه دهنده؟ Nevalang را بررسی کنید-این یک زبان برنامه نویسی در حال پیشرفت است که در بالای GO ساخته شده است ، که برخی از مسائل GO مانند داده های داده ، Nil Pointer-Dereference و غیره را برطرف می کند. و خیلی بیشتر سرانجام می توانید آن را از Go و برعکس صدا کنید.
علاقه مند؟ به ما یک ستاره بدهید و به جامعه ما بپیوندید. ما برای مشارکت و آزمایش زبان به توسعه دهندگان (نه فقط gophers!) نیاز داریم. بیایید برنامه نویسی را با هم تغییر دهیم – برو عالی است اما ما می توانیم حتی بهتر عمل کنیم: