وقتی دارید یه استراکچر توی گولنگ (Golang) تعریف میکنید، ترتیب قرار دادن فیلدهاش خیلی مهمه. این ترتیب روی حافظهی که استفاده میکنه و سرعت دسترسی بهش تاثیر داره و بهش Memory Alignment می گویند.
اگر تکه کد اول در تصویر رو در نظر بگیریم:
اینجا اول یه char داریم که یه بایت فضا میگیره و بعدش یه int که ۴ بایت. بین اینها یه فاصله (padding) میافته که حافظهی بیشتری میگیره.
حالا بیاید بخش دوم کد رو بررسی کنیم:
توی این حالت، اول int میاد و بعد char. حافظهبندی بهتری داره و فضاهای خالی (padding) کمتری استفاده میشه.
تو معماری های مختلف، این ترتیبها ممکنه تاثیرات متفاوتی داشته باشن. ولی معمولاً تو حالت دوم، حافظه بهینهتری استفاده میشه و برنامه سریعتر عمل میکنه.
پس ترتیب فیلدها توی استراکچر رو درست بچین که هم حافظه کمتری بگیره و هم سریعتر باشه! داخل کامنت ها ی نمونه کامل از همه فیلد ها رو قرار میدم.
@code_cache | <Mohammad Abdorrahmani/>
اگر تکه کد اول در تصویر رو در نظر بگیریم:
اینجا اول یه char داریم که یه بایت فضا میگیره و بعدش یه int که ۴ بایت. بین اینها یه فاصله (padding) میافته که حافظهی بیشتری میگیره.
حالا بیاید بخش دوم کد رو بررسی کنیم:
توی این حالت، اول int میاد و بعد char. حافظهبندی بهتری داره و فضاهای خالی (padding) کمتری استفاده میشه.
تو معماری های مختلف، این ترتیبها ممکنه تاثیرات متفاوتی داشته باشن. ولی معمولاً تو حالت دوم، حافظه بهینهتری استفاده میشه و برنامه سریعتر عمل میکنه.
پس ترتیب فیلدها توی استراکچر رو درست بچین که هم حافظه کمتری بگیره و هم سریعتر باشه! داخل کامنت ها ی نمونه کامل از همه فیلد ها رو قرار میدم.
@code_cache | <Mohammad Abdorrahmani/>
👍4❤1
code cache | کد کش
وقتی دارید یه استراکچر توی گولنگ (Golang) تعریف میکنید، ترتیب قرار دادن فیلدهاش خیلی مهمه. این ترتیب روی حافظهی که استفاده میکنه و سرعت دسترسی بهش تاثیر داره و بهش Memory Alignment می گویند. اگر تکه کد اول در تصویر رو در نظر بگیریم: اینجا اول یه char…
شما وقتی یک سیستمی رو با گولنگ می نویسید و الزامتون برای اینکار سرعت بالا هست ولی اگر شما یکسری تریک ها و best practice ها رو رعایت نکنید عملا اون کد هاتون رو داخل JS یا PHP پیاده سازی می کردید فرقی نمی کرد ( نه فقط گولنگ هر زبان برنامه نویسی یا دیتابیسی).
حالا در Go، یه چیزی داریم به اسم ترازبندی حافظه یا همون Memory Alignment. این ترازبندی به این معناست که دادهها توی حافظه باید به یه شکل خاص چیده بشن تا پردازنده بتونه سریعتر بهشون دسترسی داشته باشه.
سوال پیش میاد : چرا Memory Alignment اهمیت داره؟!
وقتی دادهها تو حافظه درست و حسابی تراز باشن، پردازنده میتونه راحتتر و سریعتر بهشون دسترسی پیدا کنه. اینجوری که پردازنده دادهها رو توی بلاکهای حافظهای مثل 8، 16 یا 32 بیتی میخونه و وقتی که این دادهها توی مرزهای مشخصی (مثل مضرب 2 یا 4 بایت) قرار بگیرن، همه چی سریعتر پیش میره.
البته من در پست قبلی کامل توضیح دادم با مثال
ابزارهای ترازبندی در Go
توی Go میتونی با استفاده از پکیج unsafe ترازبندی حافظه رو بررسی کنی. این بسته توابعی مثل unsafe.Alignof داره که میتونه ترازبندی یه نوع داده خاص رو بهت بگه.
ی سوال دیگه Memory Alignment چه تاثیری بر روی عملکرد داره؟!
اگه دادهها ناهماهنگ باشن، عملکرد برنامه میتونه افت کنه و حتی بعضی پردازندهها ممکنه به خاطر این مسئله خطا بدن. به همین خاطر Go سعی میکنه همه چی رو تراز کنه.
در ضمن در حال حاضر کامپایلر به صورت خودکار اینکارو انجام نمیده.
@code_cache | <Mohammad Abdorrahmani/>
حالا در Go، یه چیزی داریم به اسم ترازبندی حافظه یا همون Memory Alignment. این ترازبندی به این معناست که دادهها توی حافظه باید به یه شکل خاص چیده بشن تا پردازنده بتونه سریعتر بهشون دسترسی داشته باشه.
سوال پیش میاد : چرا Memory Alignment اهمیت داره؟!
وقتی دادهها تو حافظه درست و حسابی تراز باشن، پردازنده میتونه راحتتر و سریعتر بهشون دسترسی پیدا کنه. اینجوری که پردازنده دادهها رو توی بلاکهای حافظهای مثل 8، 16 یا 32 بیتی میخونه و وقتی که این دادهها توی مرزهای مشخصی (مثل مضرب 2 یا 4 بایت) قرار بگیرن، همه چی سریعتر پیش میره.
البته من در پست قبلی کامل توضیح دادم با مثال
ابزارهای ترازبندی در Go
توی Go میتونی با استفاده از پکیج unsafe ترازبندی حافظه رو بررسی کنی. این بسته توابعی مثل unsafe.Alignof داره که میتونه ترازبندی یه نوع داده خاص رو بهت بگه.
ی سوال دیگه Memory Alignment چه تاثیری بر روی عملکرد داره؟!
اگه دادهها ناهماهنگ باشن، عملکرد برنامه میتونه افت کنه و حتی بعضی پردازندهها ممکنه به خاطر این مسئله خطا بدن. به همین خاطر Go سعی میکنه همه چی رو تراز کنه.
در ضمن در حال حاضر کامپایلر به صورت خودکار اینکارو انجام نمیده.
@code_cache | <Mohammad Abdorrahmani/>
🔥5
🤣5
برنامهنویسا تو هکاتون:
کل محصولو تو ۳ روز میزنیم.
همون برنامهنویسا بعد هکاتون:
اضافه کردن این دکمه با ایکن یه هفته طول میکشه.
@code_cache
کل محصولو تو ۳ روز میزنیم.
همون برنامهنویسا بعد هکاتون:
اضافه کردن این دکمه با ایکن یه هفته طول میکشه.
@code_cache
👍4
🔥6
♨️بیانیه بلوبانک: هک نشدهایم؛ حسابها در امنیت کامل قرار دارند
#بلوبانک ادعاها مربوط به هک شدن حسابهایش را رد کرد. به گزارش دیجیاتو، این نئوبانک با انتشار بیانیهای اعلام کرد که حسابهایش در امنیت کامل قرار دارند.
متن بیانیه روابط عمومی بلوبانک به این شرح است:
«روز گذشته، یک گروه هکری مدعی شد که بلوبانک را هک و برای اثبات ادعاهای خود، به شکل نمونه دادههای منتسب به ۲۵ هزار نفر را منتشر کرد.
تیم امنیت بلوبانک از همان دقایق ابتدایی، بررسیهای خود را آغاز کرد که نتایج این برررسیها نشان میدهد که اطلاعات مشتریان و حسابهای بلو در امنیت کامل قرار دارند و هک نشدهاند.
امنیت حسابهای بلوبانک با بهروزترین ابزارها و تکنولوژیها تامین میشود و هیچ اتفاقی برای هیچکدام از حسابهای کاربران بلو نیفتاده است.
باج دادن به هکرهایی که با شیوههایی از این دست به شکل مستمر، در فضای مجازی حضور دارند، در دستگاه اخلاقی بلوبانک جایی ندارد.
ما در بلو، از هرکس یا هر مجموعهای که بخواهد به شکل حرفهای و اخلاقی باگی را گزارش دهد، استقبال و قدردانی میکنیم.»
@code_cache | Digiato
#بلوبانک ادعاها مربوط به هک شدن حسابهایش را رد کرد. به گزارش دیجیاتو، این نئوبانک با انتشار بیانیهای اعلام کرد که حسابهایش در امنیت کامل قرار دارند.
متن بیانیه روابط عمومی بلوبانک به این شرح است:
«روز گذشته، یک گروه هکری مدعی شد که بلوبانک را هک و برای اثبات ادعاهای خود، به شکل نمونه دادههای منتسب به ۲۵ هزار نفر را منتشر کرد.
تیم امنیت بلوبانک از همان دقایق ابتدایی، بررسیهای خود را آغاز کرد که نتایج این برررسیها نشان میدهد که اطلاعات مشتریان و حسابهای بلو در امنیت کامل قرار دارند و هک نشدهاند.
امنیت حسابهای بلوبانک با بهروزترین ابزارها و تکنولوژیها تامین میشود و هیچ اتفاقی برای هیچکدام از حسابهای کاربران بلو نیفتاده است.
باج دادن به هکرهایی که با شیوههایی از این دست به شکل مستمر، در فضای مجازی حضور دارند، در دستگاه اخلاقی بلوبانک جایی ندارد.
ما در بلو، از هرکس یا هر مجموعهای که بخواهد به شکل حرفهای و اخلاقی باگی را گزارش دهد، استقبال و قدردانی میکنیم.»
@code_cache | Digiato
code cache | کد کش
♨️بیانیه بلوبانک: هک نشدهایم؛ حسابها در امنیت کامل قرار دارند #بلوبانک ادعاها مربوط به هک شدن حسابهایش را رد کرد. به گزارش دیجیاتو، این نئوبانک با انتشار بیانیهای اعلام کرد که حسابهایش در امنیت کامل قرار دارند. متن بیانیه روابط عمومی بلوبانک به این…
This media is not supported in your browser
VIEW IN TELEGRAM
🤣5
👍5