وقتی در آخرین نتایج Techempower فریم ورک ASP NET Core در ربته اول آزمون Plaintext قرار گرفت برای خیلی ها جای تعجب داشت که چطور سی شارپ می تواند سریعتر از Rust یا ++C خروجی دهد. حتی اگر این نتیجه فقط برای یک آزمون آن هم یکبار اتفاق افتاده باشد باز هم اهمیت زیادی دارد.
مکث هایی که GC ایجاد میکند یکی از مهمترین عوامل افت پرفومنس اپلیکیشن های تحت وب است. زبانهای Rust و ++C بدون GC کار می کنند و Golang هم ساختار داده ای ساده تری دارد و انتظار میرود GC در آن سریعتر و سبکتر عمل کند.
اما برای تیم توسعه دات نت اما این یک اتفاق نبود. فریم ورک ASP NET Core دو سال پیش در ردیف 11 قرار داشت. در این مدت قابلیت های زیادی به زبان سی شارپ اضافه شد. ابزاری مثل Span یا استفاده از SIMD در RyuJIT نیاز به چند سال برنامه ریزی و توسعه داشت.
بهتر شدن پرفورمنس در شرایطی صورت میگیرد که استفاده از کلمه کلیدی Unsafe در فریم ورک و سرور کمتر شده است.
قرار گرفتن در رتبه نخست آزمون Plaintext نتیجه یک هدف گذاری مشخص بود که امروز هم با صرف وقت و هزینه زیاد ادامه دارد. نتیجه این هدف گذاری خودش را Composite Score به خوبی نشان داده است.
مکث هایی که GC ایجاد میکند یکی از مهمترین عوامل افت پرفومنس اپلیکیشن های تحت وب است. زبانهای Rust و ++C بدون GC کار می کنند و Golang هم ساختار داده ای ساده تری دارد و انتظار میرود GC در آن سریعتر و سبکتر عمل کند.
اما برای تیم توسعه دات نت اما این یک اتفاق نبود. فریم ورک ASP NET Core دو سال پیش در ردیف 11 قرار داشت. در این مدت قابلیت های زیادی به زبان سی شارپ اضافه شد. ابزاری مثل Span یا استفاده از SIMD در RyuJIT نیاز به چند سال برنامه ریزی و توسعه داشت.
بهتر شدن پرفورمنس در شرایطی صورت میگیرد که استفاده از کلمه کلیدی Unsafe در فریم ورک و سرور کمتر شده است.
قرار گرفتن در رتبه نخست آزمون Plaintext نتیجه یک هدف گذاری مشخص بود که امروز هم با صرف وقت و هزینه زیاد ادامه دارد. نتیجه این هدف گذاری خودش را Composite Score به خوبی نشان داده است.
❇️با Mayhem آشنا شوید؛ باتی که باگهای نرمافزاری را برای پنتاگون شکار میکند
در دنیای نرم افزار آسیبپذیریهای زیادی وجود دارند که میتوان از آنها سوءاستفاده و به سیستمهای مختلف حمله کرد. در همین راستا توسعه ابزاری که بتواند این آسیبپذیریها را شناسایی کند، اهمیت بالایی دارد. یک بات با نام «Mayhem» که توسط استارتاپ «ForAllSecure» توسعه پیدا کرده، چنین وظیفهای را در پنتاگون برعهده دارد.
شاید تا به امروز نام «دف کان»، یکی از بزرگترین کنفرانسهای هکرها که سالانه در لاس وگاس برگزار میشود، به گوشتان خورده باشد. رقابت هکرها با یکدیگر یکی از بخشهای دف کان را تشکیل میدهد که در سال ۲۰۱۶ تیم خالق Mayhem توانست جایزه «Cyber Grand Challenge» دارپا را در این مسابقات تصاحب کند.
این تیم حضور کمرنگی روی صحنه داشت و داوران با ۷ سرور روبهرو شدند که هریک از آنها حاوی باتهایی برای کشف باگها در سرورهای دیگر بودند و علاوه بر شکار آنها، باگهای خود را نیز برطرف میکردند. پس از ۸ ساعت این بات که تیمی از آزمایشگاه امنیت دانشگاه «کارنگی ملون» وظیفه توسعه آن را برعهده داشت، توانست جایزه ۲ میلیون دلاری را برنده شود.
https://arstechnica.com/information-technology/2020/06/this-bot-hunts-software-bugs-for-the-pentagon/
در دنیای نرم افزار آسیبپذیریهای زیادی وجود دارند که میتوان از آنها سوءاستفاده و به سیستمهای مختلف حمله کرد. در همین راستا توسعه ابزاری که بتواند این آسیبپذیریها را شناسایی کند، اهمیت بالایی دارد. یک بات با نام «Mayhem» که توسط استارتاپ «ForAllSecure» توسعه پیدا کرده، چنین وظیفهای را در پنتاگون برعهده دارد.
شاید تا به امروز نام «دف کان»، یکی از بزرگترین کنفرانسهای هکرها که سالانه در لاس وگاس برگزار میشود، به گوشتان خورده باشد. رقابت هکرها با یکدیگر یکی از بخشهای دف کان را تشکیل میدهد که در سال ۲۰۱۶ تیم خالق Mayhem توانست جایزه «Cyber Grand Challenge» دارپا را در این مسابقات تصاحب کند.
این تیم حضور کمرنگی روی صحنه داشت و داوران با ۷ سرور روبهرو شدند که هریک از آنها حاوی باتهایی برای کشف باگها در سرورهای دیگر بودند و علاوه بر شکار آنها، باگهای خود را نیز برطرف میکردند. پس از ۸ ساعت این بات که تیمی از آزمایشگاه امنیت دانشگاه «کارنگی ملون» وظیفه توسعه آن را برعهده داشت، توانست جایزه ۲ میلیون دلاری را برنده شود.
https://arstechnica.com/information-technology/2020/06/this-bot-hunts-software-bugs-for-the-pentagon/
Ars Technica
This bot hunts software bugs for the Pentagon
Champion of a 2016 DARPA contest at DEFCON, now Mayhem gets used by the military.
♨️افزایش بی سابقه کاربران و درآمدهای زوم به خاطر دنیاگیری کووید ۱۹
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه ماهه گذشته بالغ بر ۳۲۸ میلیون دلار درآمد داشته است. این رقم بیشتر از دو برابر مقدار درآمدهای زوم در بازه مشابه سال قبل است (۱۲۲ میلیون دلار) و به مراتب بالاتر از درآمد ۲۰۰ میلیون دلاری است که مدیران این شرکت برای سه ماهه اخیر پیش بینی کرده بودند.
زوم اعلام نکرده که در فصل گذشته چند نفر از سرویس آن استفاده کرده اند اما در گزارش خود مدعی شده که «تعداد غیرقابل پیش بینی از مشارکت کنندگان» از جمله ۱۰۰ هزار مدرسه به سرویس آن ملحق شده اند. در مجموع زوم حالا ۲۶۵۴۰۰ کاربر دارد ؛ رقمی که به تعبیر مدیران آن افزایشی ۳۵۴ درصدی را نشان می دهد.
اما افزایش استفاده کاربران از سرویس زوم به معنای افزایش قابل توجه هزینه های آن هم هست چراکه طبق گزارش اخیر این هزینه ها با رشد سال به سال دوبرابری به رقم ۲۰۱ میلیون دلار رسیده اند.
https://dgto.ir/1q0o
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه ماهه گذشته بالغ بر ۳۲۸ میلیون دلار درآمد داشته است. این رقم بیشتر از دو برابر مقدار درآمدهای زوم در بازه مشابه سال قبل است (۱۲۲ میلیون دلار) و به مراتب بالاتر از درآمد ۲۰۰ میلیون دلاری است که مدیران این شرکت برای سه ماهه اخیر پیش بینی کرده بودند.
زوم اعلام نکرده که در فصل گذشته چند نفر از سرویس آن استفاده کرده اند اما در گزارش خود مدعی شده که «تعداد غیرقابل پیش بینی از مشارکت کنندگان» از جمله ۱۰۰ هزار مدرسه به سرویس آن ملحق شده اند. در مجموع زوم حالا ۲۶۵۴۰۰ کاربر دارد ؛ رقمی که به تعبیر مدیران آن افزایشی ۳۵۴ درصدی را نشان می دهد.
اما افزایش استفاده کاربران از سرویس زوم به معنای افزایش قابل توجه هزینه های آن هم هست چراکه طبق گزارش اخیر این هزینه ها با رشد سال به سال دوبرابری به رقم ۲۰۱ میلیون دلار رسیده اند.
https://dgto.ir/1q0o
دیجیاتو
افزایش بی سابقه کاربران و درآمدهای زوم به خاطر دنیاگیری کووید ۱۹
اپلیکیشن زوم در دوران پاندمی کووید ۱۹ به محبوب ترین سرویس ویدیو کنفرانس در سراسر دنیا بدل شد و شاید تعجب نداشته باشد اگر بگوییم این اپ در بازه زمانی سه
مایکروسافت قصد دارد محدودیت تعداد شرکت کنندگان در چت ویدیویی تیمز را از ۲۵۰ به ۳۰۰ نفر افزایش دهد.
افزایش روزانه تقاضا برای ابزارهایی مانند تیمز از شرکت مایکروسافت یا اپلیکیشن های مشابه از شرکت های دیگر باعث افزایش رقابت بین این شرکت ها شده به طوری که هر کدام سعی می کنند ویژگی های جدیدی را برای کاربران خود به ارمغان بیاورند و به این وسیله برتری خود نسبت به دیگران را حفظ کنند.
افزایش روزانه تقاضا برای ابزارهایی مانند تیمز از شرکت مایکروسافت یا اپلیکیشن های مشابه از شرکت های دیگر باعث افزایش رقابت بین این شرکت ها شده به طوری که هر کدام سعی می کنند ویژگی های جدیدی را برای کاربران خود به ارمغان بیاورند و به این وسیله برتری خود نسبت به دیگران را حفظ کنند.
https://timevpn.com/
VPN اختصاصی
L2TP
PPTP
IKEV2
Socks5 proxy
OPENVPN
Shadowsocks
در سایت ثبت نام کرده و سپس ایمیل خود را تایید کنید.مطابق نیاز خود می توانید از سه روش vpn یا پروکسی یا شادوساکس استفاده کنید.
دارای شادوساکس اختصاصی مخصوص تلگرام با سرعت عالی
برنامه شادوساکس ویندوز( نسخه جدید را از گیت هاب دریافت کنید)
شادوساکس اندروید
نمونه اکانت فعال شده pptp
Server:
VPN اختصاصی
L2TP
PPTP
IKEV2
Socks5 proxy
OPENVPN
Shadowsocks
در سایت ثبت نام کرده و سپس ایمیل خود را تایید کنید.مطابق نیاز خود می توانید از سه روش vpn یا پروکسی یا شادوساکس استفاده کنید.
دارای شادوساکس اختصاصی مخصوص تلگرام با سرعت عالی
برنامه شادوساکس ویندوز( نسخه جدید را از گیت هاب دریافت کنید)
شادوساکس اندروید
نمونه اکانت فعال شده pptp
Server:
nl.timevpn.com
Username: 012968_sr
Password: vqrAqLv
ID: APPXAP
❇️احتمال رونمایی از نسل بعدی آی مک در WWDC؛ طراحی جدید و سختافزار قویتر
بر اساس گفتههای یکی از افشاگران دنیای فناوری، اپل نسل جدید آی مک را با ظاهر جدید در کنفرانس WWDC رونمایی میکند.
یکی از افشاگران دنیای فناوری با نام کاربری «Sonny Dickson» در توییتر میگوید نسل جدید آی مک مشابه اپل دیسپلی XDR حاشیه باریکی خواهد داشت و به تراشه امنیتی T2 مجهز شده است. علاوه بر این در مدل جدید هارددیسک مکانیکی جای خود را به حافظه پرسرعت SSD داده است.
افشاگر یاد شده میگوید سخت افزار نسل جدید آی مک نیز دست خوش تغییرات گسترده شده و از مجهز شدن آن به پردازنده گرافیکی جدید سری Navi و همچنین حذف هارددیسک مکانیکی و فیوژن درایو خبر داده است. وی میگوید نسل جدید آی مک برای اولین بار به تراشه T2 مجهز شده که سرعت خواندن و نوشتن بسیار سریع را فراهم کرده و امنیت دستگاه را نیز ارتقا میدهد.
ظاهر آی مک سالهاست دست نخورده باقی مانده است. اپل آخرین بار سال ۲۰۱۲ شاسی این دسکتاپ را با ضخامت ۵ میلیمتری معرفی کرد که با نگاه کردن از کناره دستگاه قابل شناسایی بود. به غیر از این مورد، طراحی جلوی آی مک نزدیک به یک دهه دست نخورده باقی مانده است.
به نظر میرسد کنفرانس WWDC امسال حاوی خبرهای بزرگی برای طرفداران اپل باشد. گزارش شده اپل در این کنفرانس جایگزینی پردازندههای اینتل با ARM را رسما اعلام میکند. علاوه بر این انتظار میرود نسخههای جدید سیستم عامل این شرکت یعنی iOS 14, watchOS 7, macOS 10.16 و tvOS 14 معرفی شوند.
https://9to5mac.com/2020/06/09/new-imac-wwdc-bezels/
بر اساس گفتههای یکی از افشاگران دنیای فناوری، اپل نسل جدید آی مک را با ظاهر جدید در کنفرانس WWDC رونمایی میکند.
یکی از افشاگران دنیای فناوری با نام کاربری «Sonny Dickson» در توییتر میگوید نسل جدید آی مک مشابه اپل دیسپلی XDR حاشیه باریکی خواهد داشت و به تراشه امنیتی T2 مجهز شده است. علاوه بر این در مدل جدید هارددیسک مکانیکی جای خود را به حافظه پرسرعت SSD داده است.
افشاگر یاد شده میگوید سخت افزار نسل جدید آی مک نیز دست خوش تغییرات گسترده شده و از مجهز شدن آن به پردازنده گرافیکی جدید سری Navi و همچنین حذف هارددیسک مکانیکی و فیوژن درایو خبر داده است. وی میگوید نسل جدید آی مک برای اولین بار به تراشه T2 مجهز شده که سرعت خواندن و نوشتن بسیار سریع را فراهم کرده و امنیت دستگاه را نیز ارتقا میدهد.
ظاهر آی مک سالهاست دست نخورده باقی مانده است. اپل آخرین بار سال ۲۰۱۲ شاسی این دسکتاپ را با ضخامت ۵ میلیمتری معرفی کرد که با نگاه کردن از کناره دستگاه قابل شناسایی بود. به غیر از این مورد، طراحی جلوی آی مک نزدیک به یک دهه دست نخورده باقی مانده است.
به نظر میرسد کنفرانس WWDC امسال حاوی خبرهای بزرگی برای طرفداران اپل باشد. گزارش شده اپل در این کنفرانس جایگزینی پردازندههای اینتل با ARM را رسما اعلام میکند. علاوه بر این انتظار میرود نسخههای جدید سیستم عامل این شرکت یعنی iOS 14, watchOS 7, macOS 10.16 و tvOS 14 معرفی شوند.
https://9to5mac.com/2020/06/09/new-imac-wwdc-bezels/
9to5Mac
Rumor: Redesigned iMac to be announced at WWDC with thin bezels, AMD Navi GPUs and T2 chip
Apple may be about to refresh the iMac’s external design after more than eight years. According to leaker Sonny Dickson, a new iMac is set to arrive later this month as part of Apple’s WWDC announcements. The new iMac would feature slim bezels, resembling…
اکنون زمان فوق العاده ای برای ورود به دنیای تکنولوژی است، زیرا تکنولوژی در ۱۰ سال آینده بیش از ۵۰ سال گذشته تغییر خواهد کرد.
#Bill_Gates
#Bill_Gates
✅ وبینار انگولار پلتفرمی برای اپلیکیشنهایی با مقیاس بزرگ
👨🏫 ارائه کننده: علی بدخشان، عضو ارشد تیم زیرساخت راهکاران همکاران سیستم
🗓 زمان: شنبه 24 خرداد، 19 تا 20:30
👈 ثبت نام رایگان در وبینار
در این وبینار به این موضوع میپردازیم که Angular چگونه میتواند به عنوان پلتفرمی برای توسعه اپلیکیشنهای با مقیاس بزرگ استفاده شود.
محورهای اصلی این وبینار عبارتند از:
• تعریف اپلیکیشن با مقیاس بزرگ
• مفهوم مقیاس پذیری در Front-end
• چگونه Angular یک پلتفرم مناسب برای اپلیکیشنهای با مقیاس بزرگ است؟
– TypeScript
– Opinionated Platform
– Component Based Architecture
– Modular Design
– Design Patterns
– Angular Elements
– Micro Frontends Readiness
• چند راهکار برای اینکه محصولی مقیاسپذیر داشته باشیم (مناسب برای اپلیکیشنهای با مقیاس بزرگ)
– Separation of Service Abstraction & Implementation
– Template Inheritance or Containers
– Routing Strategy
– Element Strategy
– Micro Front-ends
👈 ثبت نام رایگان در وبینار
— — — — —
#وبینار #رویداد #خبر_خوب
👨🏫 ارائه کننده: علی بدخشان، عضو ارشد تیم زیرساخت راهکاران همکاران سیستم
🗓 زمان: شنبه 24 خرداد، 19 تا 20:30
👈 ثبت نام رایگان در وبینار
در این وبینار به این موضوع میپردازیم که Angular چگونه میتواند به عنوان پلتفرمی برای توسعه اپلیکیشنهای با مقیاس بزرگ استفاده شود.
محورهای اصلی این وبینار عبارتند از:
• تعریف اپلیکیشن با مقیاس بزرگ
• مفهوم مقیاس پذیری در Front-end
• چگونه Angular یک پلتفرم مناسب برای اپلیکیشنهای با مقیاس بزرگ است؟
– TypeScript
– Opinionated Platform
– Component Based Architecture
– Modular Design
– Design Patterns
– Angular Elements
– Micro Frontends Readiness
• چند راهکار برای اینکه محصولی مقیاسپذیر داشته باشیم (مناسب برای اپلیکیشنهای با مقیاس بزرگ)
– Separation of Service Abstraction & Implementation
– Template Inheritance or Containers
– Routing Strategy
– Element Strategy
– Micro Front-ends
👈 ثبت نام رایگان در وبینار
— — — — —
#وبینار #رویداد #خبر_خوب
همکاران سیستم
وبینار انگولار پلتفرمی برای اپلیکیشنهایی با مقیاس بزرگ - همکاران سیستم
❇️ پروژه ASP.NET Core آزمون آنلاین مبتنی بر DDD و CQRS و Event Sourcing
🔰تکنولوژی های استفاده شده :
✔️ASP .NET Core
✔️#React
✔️#Microservices
✔️#DDD
✔️#CQRS
✔️#Event_Sourcing
✔️#PostgreSQL
✔️#RabbitMQ
✔️#Docker
✔️#Kubernetes
✔️#TDD
https://github.com/netcorebcn/quiz
__________________
🔰تکنولوژی های استفاده شده :
✔️ASP .NET Core
✔️#React
✔️#Microservices
✔️#DDD
✔️#CQRS
✔️#Event_Sourcing
✔️#PostgreSQL
✔️#RabbitMQ
✔️#Docker
✔️#Kubernetes
✔️#TDD
https://github.com/netcorebcn/quiz
__________________
GitHub
GitHub - netcorebcn/quiz: Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure…
Example real time quiz application with .NET Core, React, DDD, Event Sourcing, Docker and built-in infrastructure for CI/CD with k8s, jenkins and helm - GitHub - netcorebcn/quiz: Example real time ...
❇️ عیب یابی و رفع مشکلات پرفرمنسی
در یکی از شرکت هایی که مشاور هستم از من خواسته شده تا مشکلات پرفرمنسی پروژه را پیدا کرده و مناسب ترین راه حل را به آنها پیشنهاد دهم
در هر پروژه ای احتمالا قسمت های زیادی قابل بهبود هستند (چه از لحاظ پرفرمنسی و چه از لحاظ معماری و کدنویسی تمیز و...) اما برای یافتن موثر ترین راه و البته کم هزینه ترین، باید ابتدا Bottleneck (گلوگاه) های سیستم را کشف کرده و سپس بر اساس «هزینه، زمان و منفعت» آنها را الویت بندی کنیم
برای کشف گلوگاه های سیستم (جاهایی که عامل اصلی افت پرفرمنس هستند) باید از ابزار های Profiler استفاده کنیم.
در کل پروفایلر های مختلفی وجود دارند که اکثرا پولی هستند در اینجا میخواهم بهترین آنها رو معرفی کنم
بهترین ابزار های Performance Profiler
1️⃣ برنامه ANTS Performance Profiler (محصول شرکت Redgate)
2️⃣ برنامه dotTrace (محصول شرکت JetBrains)
3️⃣ برنامه PerfView (محصولی "رایگان و سورس باز" از شرکت Microsoft)
4️⃣ برنامه CodeTrack (محصولی "رایگان و سورس باز")
هر چهار برنامه قابلیت های قوی و زیادی دارند از مهمترین شون میشه به موارد زیر اشاره کرد
🔸 قابلیت ثبت سلسله مراتب فراخوانی متد ها
توسط این قابلیت که اصلاحا بهش Call tree میگن میشه فهمید که چه متدی چه متد های دیگه ای رو فراخوانی کرده یا مثلا یک متد کلا چندبار صدا زده شده و هر متد چقدر به طول انجامیده (در قالب یک Timeline کامل) و ....
🔹 قابلیت ثبت تمام کوئری های اجرا شده بر روی دیتابیس
توسط این قابلیت میشه دید چه کوئری هایی و مثلا یک کوئری چندبار روی دیتابیس اجرا شده و هرکدوم چقدر زمان بره و...
🔸 قابلیت ثبت تمام Exception های رخ داده به همراه جزئیات و stacktrace
🔹 قابلیت نمایش تمام Thread های ایجاد شده و فرایند های انجام شده داخلش هر کدومشون و یا کلیه فرایند های انجام شده داخل یک Process
🔸 قابلیت پروفایل کردن همه برنامه ها از جمله
.NET Framework, .NET Core و ASP.NET, ASP.NET Core, Webservices, WCF, Windows Forms, Windows services, WPF ,IIS Website, IIS Express Website, Attach to a running process
❇️ این قابلیت ها برای عیب یابی به شدت مفید هستند چون توی یه سیستم با تراکنش بالا که بعضی مشکلات رو نمیشه پیش بینی کرد با این به راحتی میشه متد ها و یا کوئری های سنگین و اضافه ای که باعث افت پرفرمنس میشه رو پیدا کرد
❇️ هر دو برنامه ANTS و dotTrace پولی بوده و جز بهترین و محبوبترین برنامه های Performance Profiler هستند.
برنامه dotTrace یکپارچگی خوبی با Resharper داره و Visual Studio داره ولی شخصا با توجه به تجربه کاری با جفتشون، برنامه ANTS رو بیشتر می پسندم؛ کارکردن باهاش راحته و UX خوبی داره گزارشات و خروجی کاربردی تری نشون میده
ANTS Performance Profiler overview (ویدئو دمو برنامه)
https://www.youtube.com/watch?v=8mhC-Ji6-uU
❇️ برنامه PerfView هم تقریبا همین قابلیت ها رو داره ولی کارکردن باهاش سخت تره و UX خوبی نداره ولی چون رایگانه محبوبه
برنامه CodeTrack هم قابلیت هاش (نسبت به قبلی ها) کمتره ولی کارکردن باهاش راحته و UX متوسطی داره ونیز رایگانه
❇️ یه قابلیت خوبی که فقط dotTrace داره قابلیت Remote Profiling هست که توسط اون میتونین به برنامه هاتون روی یه سرور Remote دیگه متصل بشین و پرفایلش کنین
🔰در ادامه تصمیم دارم یه سری از مشکلات مهمی که توی اون پروژه مذکور پیدا و رفع میکنم رو با هشتگ زیر منتشر کنم
#PerformanceTuning
_______________
در یکی از شرکت هایی که مشاور هستم از من خواسته شده تا مشکلات پرفرمنسی پروژه را پیدا کرده و مناسب ترین راه حل را به آنها پیشنهاد دهم
در هر پروژه ای احتمالا قسمت های زیادی قابل بهبود هستند (چه از لحاظ پرفرمنسی و چه از لحاظ معماری و کدنویسی تمیز و...) اما برای یافتن موثر ترین راه و البته کم هزینه ترین، باید ابتدا Bottleneck (گلوگاه) های سیستم را کشف کرده و سپس بر اساس «هزینه، زمان و منفعت» آنها را الویت بندی کنیم
برای کشف گلوگاه های سیستم (جاهایی که عامل اصلی افت پرفرمنس هستند) باید از ابزار های Profiler استفاده کنیم.
در کل پروفایلر های مختلفی وجود دارند که اکثرا پولی هستند در اینجا میخواهم بهترین آنها رو معرفی کنم
بهترین ابزار های Performance Profiler
1️⃣ برنامه ANTS Performance Profiler (محصول شرکت Redgate)
2️⃣ برنامه dotTrace (محصول شرکت JetBrains)
3️⃣ برنامه PerfView (محصولی "رایگان و سورس باز" از شرکت Microsoft)
4️⃣ برنامه CodeTrack (محصولی "رایگان و سورس باز")
هر چهار برنامه قابلیت های قوی و زیادی دارند از مهمترین شون میشه به موارد زیر اشاره کرد
🔸 قابلیت ثبت سلسله مراتب فراخوانی متد ها
توسط این قابلیت که اصلاحا بهش Call tree میگن میشه فهمید که چه متدی چه متد های دیگه ای رو فراخوانی کرده یا مثلا یک متد کلا چندبار صدا زده شده و هر متد چقدر به طول انجامیده (در قالب یک Timeline کامل) و ....
🔹 قابلیت ثبت تمام کوئری های اجرا شده بر روی دیتابیس
توسط این قابلیت میشه دید چه کوئری هایی و مثلا یک کوئری چندبار روی دیتابیس اجرا شده و هرکدوم چقدر زمان بره و...
🔸 قابلیت ثبت تمام Exception های رخ داده به همراه جزئیات و stacktrace
🔹 قابلیت نمایش تمام Thread های ایجاد شده و فرایند های انجام شده داخلش هر کدومشون و یا کلیه فرایند های انجام شده داخل یک Process
🔸 قابلیت پروفایل کردن همه برنامه ها از جمله
.NET Framework, .NET Core و ASP.NET, ASP.NET Core, Webservices, WCF, Windows Forms, Windows services, WPF ,IIS Website, IIS Express Website, Attach to a running process
❇️ این قابلیت ها برای عیب یابی به شدت مفید هستند چون توی یه سیستم با تراکنش بالا که بعضی مشکلات رو نمیشه پیش بینی کرد با این به راحتی میشه متد ها و یا کوئری های سنگین و اضافه ای که باعث افت پرفرمنس میشه رو پیدا کرد
❇️ هر دو برنامه ANTS و dotTrace پولی بوده و جز بهترین و محبوبترین برنامه های Performance Profiler هستند.
برنامه dotTrace یکپارچگی خوبی با Resharper داره و Visual Studio داره ولی شخصا با توجه به تجربه کاری با جفتشون، برنامه ANTS رو بیشتر می پسندم؛ کارکردن باهاش راحته و UX خوبی داره گزارشات و خروجی کاربردی تری نشون میده
ANTS Performance Profiler overview (ویدئو دمو برنامه)
https://www.youtube.com/watch?v=8mhC-Ji6-uU
❇️ برنامه PerfView هم تقریبا همین قابلیت ها رو داره ولی کارکردن باهاش سخت تره و UX خوبی نداره ولی چون رایگانه محبوبه
برنامه CodeTrack هم قابلیت هاش (نسبت به قبلی ها) کمتره ولی کارکردن باهاش راحته و UX متوسطی داره ونیز رایگانه
❇️ یه قابلیت خوبی که فقط dotTrace داره قابلیت Remote Profiling هست که توسط اون میتونین به برنامه هاتون روی یه سرور Remote دیگه متصل بشین و پرفایلش کنین
🔰در ادامه تصمیم دارم یه سری از مشکلات مهمی که توی اون پروژه مذکور پیدا و رفع میکنم رو با هشتگ زیر منتشر کنم
#PerformanceTuning
_______________
YouTube
ANTS Performance Profiler Overview | Redgate
ANTS Performance Profiler is a .NET profiler for desktop, ASP.NET, and ASP.NET MVC applications. Use ANTS Performance Profiler to profile your SQL
queries and see execution plans, find performance bottlenecks fast, get rich performance data, explore unfamiliar…
queries and see execution plans, find performance bottlenecks fast, get rich performance data, explore unfamiliar…
Media is too big
VIEW IN TELEGRAM
♨️ تریلر معرفی ظاهر پلی استیشن 5
❇️ پیاده سازی راحت تر درگاه های پرداخت با Parbad
پرباد یه کتابخونه کاربردی و راحت جهت پیاده سازی درگاه های پرداخت هست و از ASP.NET CORE و AS.PNET MVC و ASP.NET WebForms پشتیبانی میکنه
این کتابخونه از انواع درگاه های زیر پشتیبانی میکنه، همچنین یه درگاه پرداخت تستی هم براتون میسازه که در زمان توسعه بتونین راحت تر پرداخت هاتون رو تست کنین.
✔️Mellat
✔️Melli
✔️Saman
✔️Pasargad
✔️Parsian
✔️Iran Kish
✔️Asan Pardakht
✔️ZarinPal
✔️Pay.ir
✔️IDPay.ir
🔰اینم اموزش فارسیش
https://www.dotnettips.info/post/3009
https://www.dotnettips.info/post/3011
https://www.dotnettips.info/post/3012
https://www.dotnettips.info/post/3013
🗂البته داکیومنت خودش بروز تره
https://github.com/Sina-Soltani/Parbad/wiki
https://github.com/Sina-Soltani/Parbad
________
پرباد یه کتابخونه کاربردی و راحت جهت پیاده سازی درگاه های پرداخت هست و از ASP.NET CORE و AS.PNET MVC و ASP.NET WebForms پشتیبانی میکنه
این کتابخونه از انواع درگاه های زیر پشتیبانی میکنه، همچنین یه درگاه پرداخت تستی هم براتون میسازه که در زمان توسعه بتونین راحت تر پرداخت هاتون رو تست کنین.
✔️Mellat
✔️Melli
✔️Saman
✔️Pasargad
✔️Parsian
✔️Iran Kish
✔️Asan Pardakht
✔️ZarinPal
✔️Pay.ir
✔️IDPay.ir
🔰اینم اموزش فارسیش
https://www.dotnettips.info/post/3009
https://www.dotnettips.info/post/3011
https://www.dotnettips.info/post/3012
https://www.dotnettips.info/post/3013
🗂البته داکیومنت خودش بروز تره
https://github.com/Sina-Soltani/Parbad/wiki
https://github.com/Sina-Soltani/Parbad
________
✅ تست کد های #C به صورت آنلاین
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
توی پست قبلی در مورد C# Interactive توضیح داده بودم الان میخوام روش آنلاینش رو بررسی کنیم.
واسه اینکار سایت های زیادی هست که امکان Syntax Highlighter و Run کردن کد رو بهتون میدن. با این ابزار ها میتونین کد سی شارپ تون رو انلاین و راحت تست کنین و یا کدتون رو با بقیه به اشتراک بگذارین
🔸اول از همه بهترینشون و با اختلاف فاحش، سایت SharpLab هست. امکانات فوق العاده ای داره، Intellisense خیلی قوی ایی داره که در نوع خودش واقعا بی نظیره، امکان Decompile کردن کد خروجی به IL و #C و حتی Jit Assembly رو بهتون میده. UX خوب و روون ایی داره و خیلی سریع، در لحظه کد رو اجرا میکنه.
https://sharplab.io/
🔹این سایت برای ویرایشگرش اش از پلاگین جاوااسکریپتی CodeMirror استفاده میکنه که یک Code Editor و Syntax Highlighter قوی هست و از تموم زبان ها پشتیبانی میکنه
مثلا اگه خواستین قابلیت اسکریپت نویسی و اجرای کد داینامیک رو برای پروژه تون اضافه کنین میتونین از این پلاگین استفاده کنین
https://github.com/codemirror/CodeMirror
[Demo] https://codemirror.net/
🔸 این سایت برای اجرای کد ها از Roslyn و برای Decompile کردنشون از ILSpy استاده میکنه که قوی ترین برنامه Decompiler دات نت هست و ابزار های حرفه دیگه از از جمله dnSpy از رو همین ساخته شدن
🔹سازنده این سایت اومده کل پکیج Code Editor سی شارپیش رو که بر روی CodeMirror و Roslyn ساخته شده رو به صورت سورس پاز تو گیتهاب گذاشته
بدین صورت مثلا میتونین یه ویرایشگر کامل سی شارپی به همراه Autocomplete واسه اسکریپت نویسی داینامیک به پروژه تون اضافه کنین
https://github.com/ashmind/mirrorsharp
🔰تنها ایرادی که سایت sharplab.io داره اینه که که امکان اضافه کردن Nuget Package به کد هاتون رو نداره
واسه همین یه سایت دیگه به نام NET Fiddle. هست (که البته به خوبی اون نیست ولی بعضی امکانات اضافه تر مثل همین nuget package داره)
https://dotnetfiddle.net/
____________________
Telegram
Attach Files
❗️چرا این تصویر باعث خرابی تلفن های اندرویدی می شود
چندین کاربر اندرویدی در رسانه های اجتماعی گزارش می دهند که Wallpaper با چشم انداز کوه ، ابر و دریاچه ای با رنگ های واضح دستگاه های آنها را خراب می کند. به نظر می رسد که این موضوع نه بر طیف خاصی از دستگاه ها بلکه گوشی های اکثر شرکت ها از جمله Google و سامسونگ تأثیر می گذارد. همچنین به نظر می رسد تعداد زیادی از دستگاههای دارای آخرین نسخه Android 10 را نیز تحت تأثیر قرار می دهد. با این حال ، مشخص شده است که اشکال تصویر زمینه هیچ تاثیری در دستگاههای دارایAndroid 11 ندارد.
این موضوع پس از آنكه یك کابر توییتر با نام مستعار Ice Universe تصویر مربوطه را منتشر نمود توجه کاربران را به خود جلب نمود. این کاربر به بقیه کاربران هشدار داد كه از این Wallpaper استفاده نكنند زیرا باعث خراب شدن دستگاه های آنها می شود. برخی از کاربران در Reddit نیز اخطار مشابهی ارسال کردند. با این حال ، ظاهراً چندین کاربر برعکس عمل کرده و نتیجه آن را در پاسخ به توییت اصلی گزارش دادند.
علت دقیق این مسئله هنوز یک رمز و راز است. با این حال ، اگر ما به آنچه کارشناسان معتقد هستند نگاه کنیم ، می تواند به دلیل اشکال در سیستم اندرویدی باشد که با طیف رنگهای این عکس مشکل دارند.
هشدار !!
هرگز این تصویر را به عنوان تصویر زمینه تنظیم نکنید ، به خصوص برای کاربران تلفن همراه سامسونگ!
این باعث خرابی گوشی شما می شود!
https://gadgets.ndtv.com/mobiles/news/android-phone-wallpaper-bug-crash-google-samsung-2239966
چندین کاربر اندرویدی در رسانه های اجتماعی گزارش می دهند که Wallpaper با چشم انداز کوه ، ابر و دریاچه ای با رنگ های واضح دستگاه های آنها را خراب می کند. به نظر می رسد که این موضوع نه بر طیف خاصی از دستگاه ها بلکه گوشی های اکثر شرکت ها از جمله Google و سامسونگ تأثیر می گذارد. همچنین به نظر می رسد تعداد زیادی از دستگاههای دارای آخرین نسخه Android 10 را نیز تحت تأثیر قرار می دهد. با این حال ، مشخص شده است که اشکال تصویر زمینه هیچ تاثیری در دستگاههای دارایAndroid 11 ندارد.
این موضوع پس از آنكه یك کابر توییتر با نام مستعار Ice Universe تصویر مربوطه را منتشر نمود توجه کاربران را به خود جلب نمود. این کاربر به بقیه کاربران هشدار داد كه از این Wallpaper استفاده نكنند زیرا باعث خراب شدن دستگاه های آنها می شود. برخی از کاربران در Reddit نیز اخطار مشابهی ارسال کردند. با این حال ، ظاهراً چندین کاربر برعکس عمل کرده و نتیجه آن را در پاسخ به توییت اصلی گزارش دادند.
علت دقیق این مسئله هنوز یک رمز و راز است. با این حال ، اگر ما به آنچه کارشناسان معتقد هستند نگاه کنیم ، می تواند به دلیل اشکال در سیستم اندرویدی باشد که با طیف رنگهای این عکس مشکل دارند.
هشدار !!
هرگز این تصویر را به عنوان تصویر زمینه تنظیم نکنید ، به خصوص برای کاربران تلفن همراه سامسونگ!
این باعث خرابی گوشی شما می شود!
https://gadgets.ndtv.com/mobiles/news/android-phone-wallpaper-bug-crash-google-samsung-2239966
NDTV Gadgets 360
A Photo Is Crashing Many Android Phones, This Could Be Why
Users were warned to not apply the suspicious wallpaper on their Android devices, but they did the opposite.
متوسط حقوق
موسسه کاریابی Vettery هر سال گزارشی از وضعیت حقوق و درآمد صنعت IT منتشر میکند. به تازگی گزارش 2019 این موسسه منتشر شده که در ادامه آمار مربوط به شهر سانفرانسیسکو آمده است.
شهر سانفراسیسکو در ایالت کالیفرنیا ی آمریکا مرکز فعالیت شرکتهای بزرگ تکنولوژی مثل فیس بوک ، گوگل ، اوبر و ... است.
طبق این گزارش توسعه دهندگان موبایل هم در شروع کار هم بعد از 5 سال تجربه حقوق بیشتری دریافت می کنند.
برنامه نویسان Back-end بعد از سال اول نسبت به سایر تخصص ها درآمد بیشتری دارند.
اختلاف دستمزد در هیچ تخصصی چشمگیر نیست و متوسط درآمد به طور کلی بهم نزدیک است.
در اولین سال فعالیت دستمزد متخصصین علوم دیتا از همه بیشتر است اما اگر مایل هستید بیشترین حقوق را در بین همه ی همکاران داشته باشید باید به دنبال سمت های مدیریتی باشید.
موسسه کاریابی Vettery هر سال گزارشی از وضعیت حقوق و درآمد صنعت IT منتشر میکند. به تازگی گزارش 2019 این موسسه منتشر شده که در ادامه آمار مربوط به شهر سانفرانسیسکو آمده است.
شهر سانفراسیسکو در ایالت کالیفرنیا ی آمریکا مرکز فعالیت شرکتهای بزرگ تکنولوژی مثل فیس بوک ، گوگل ، اوبر و ... است.
طبق این گزارش توسعه دهندگان موبایل هم در شروع کار هم بعد از 5 سال تجربه حقوق بیشتری دریافت می کنند.
برنامه نویسان Back-end بعد از سال اول نسبت به سایر تخصص ها درآمد بیشتری دارند.
اختلاف دستمزد در هیچ تخصصی چشمگیر نیست و متوسط درآمد به طور کلی بهم نزدیک است.
در اولین سال فعالیت دستمزد متخصصین علوم دیتا از همه بیشتر است اما اگر مایل هستید بیشترین حقوق را در بین همه ی همکاران داشته باشید باید به دنبال سمت های مدیریتی باشید.
اضافه حقوق بر مبنای مهارت
داشتن مهارت در برنامه نویسی Scala می تواند برای شما تا 15 هزار دلار در سال حقوق بیشتر داشته باشد.
محبوبت زبان Go و استفاده ی زیاد آن در معماری میکروسرویس هم باعث شده است دانستن آن شامل 11 هزار دلار اضافه حقوق باشد.
آشنایی با ابزاری مثل D3.js که در Data Visualization و تحلیل داده کاربرد دارد هم در بین شرکتهای آمریکایی یک مزیت مهم به شمار میرود.
داشتن مهارت در برنامه نویسی Scala می تواند برای شما تا 15 هزار دلار در سال حقوق بیشتر داشته باشد.
محبوبت زبان Go و استفاده ی زیاد آن در معماری میکروسرویس هم باعث شده است دانستن آن شامل 11 هزار دلار اضافه حقوق باشد.
آشنایی با ابزاری مثل D3.js که در Data Visualization و تحلیل داده کاربرد دارد هم در بین شرکتهای آمریکایی یک مزیت مهم به شمار میرود.
💢جدیدترین آپدیت ویندوز ۱۰ استفاده از پرینتر را غیرممکن میکند
جدیدترین آپدیت ویندوز ۱۰ امنیت سیستم عامل مایکروسافت را افزایش میدهد، با این حال در این نسخه باگهایی وجود دارد که امکان استفاده از پریتنر را غیرممکن میکند.
مایکروسافت از تاریخ ۲۰ خرداد شروع به انتشار بروزرسانیهای KB4560960 و KB4557957 کرد و کاربران پس از دریافت آنها، با مشکلاتی مواجه شدند. کاربران گزارش کردهاند که پس از نصب جدیدترین آپدیت ویندوز ۱۰ نمیتوانند با تعدادی از پرینترهای شرکتهای اچپی، کانن، پاناسونیک، برادر و ریکو کار کنند. برخی از کاربران از عدم امکان پرینت نرم افزاری فایلها با فرمت PDF خبر دادهاند.
مایکروسافت با انتشار اطلاعیهای اعلام کرده که از این موضوع اطلاع دارد و آپدیت KB4557957 احتمالا عدم امکان پرینت فایلها توسط برخی پرینترها را در پی دارد. این شرکت به کاربران هشدار داده که هنگام پرینت فایل موردنظر خود شاید با خطا روبهرو شوند و یا اینکه برنامه به صورت ناگهانی بسته شود و خروجی دریافت نکنند.
https://www.engadget.com/microsofts-windows-10-updates-printer-bugs-000112943.html
جدیدترین آپدیت ویندوز ۱۰ امنیت سیستم عامل مایکروسافت را افزایش میدهد، با این حال در این نسخه باگهایی وجود دارد که امکان استفاده از پریتنر را غیرممکن میکند.
مایکروسافت از تاریخ ۲۰ خرداد شروع به انتشار بروزرسانیهای KB4560960 و KB4557957 کرد و کاربران پس از دریافت آنها، با مشکلاتی مواجه شدند. کاربران گزارش کردهاند که پس از نصب جدیدترین آپدیت ویندوز ۱۰ نمیتوانند با تعدادی از پرینترهای شرکتهای اچپی، کانن، پاناسونیک، برادر و ریکو کار کنند. برخی از کاربران از عدم امکان پرینت نرم افزاری فایلها با فرمت PDF خبر دادهاند.
مایکروسافت با انتشار اطلاعیهای اعلام کرده که از این موضوع اطلاع دارد و آپدیت KB4557957 احتمالا عدم امکان پرینت فایلها توسط برخی پرینترها را در پی دارد. این شرکت به کاربران هشدار داده که هنگام پرینت فایل موردنظر خود شاید با خطا روبهرو شوند و یا اینکه برنامه به صورت ناگهانی بسته شود و خروجی دریافت نکنند.
https://www.engadget.com/microsofts-windows-10-updates-printer-bugs-000112943.html
Engadget
Microsoft's latest Windows 10 updates come with nasty printer bugs | Engadget
The latest updates for Windows 10 give the platform’s security a boost, but they unfortunately come with nasty bugs that make printing impossible, as well.
💡#آیا_میدانستید
✅ آیا میدانستید حلقه for سریع تر از list.ForEach یا اصلاحا ForEach Lambda است؟
✅ آیا میدانستید حلقه list.ForEach سریع تر از foreach است؟ زیرا list.ForEach داخل خود از for استفاده میکند ولی foreach داخل خود از مکانسیم Enumerator Iteration که به مراتب سنگین تر است، استفاده میکند.
✅ آیا میدانستید حلقه for که مقدار count آن توسط یک متغیر خوانده شود سریع تر از حلقه for ایی است که مقدار count خود را از list.Count میخواند؟ زیرا سرعت خواندن متد get یک property زمانبر تر از خواندن مقدار یک متغیر است.
مثال :
var count = list.Count;
for (int i = 0; i < count ; i++) { }
از روش زیر سریع تر است
for (int i = 0; i < list.Count ; i++) { }
نتیجه :
در تست انجام شده، سرعت اجرای حلقه ها روی 100 میلیون آیتم به ترتیب زیر است
1- حلقه for که از متغیر count میخواند (زمان : 378 میلی ثانیه)
2- حلقه for که از خاصیت list.Count میخواند (زمان : 415 میلی ثانیه)
3- حلقه list.ForEach یا اصطلاحا ForEach Lambda (زمان : 650 میلی ثانیه)
4- حلقه foreach (زمان : 1136 میلی ثانیه)
همانطور که مشاهده میکنید تفاوت این ها آنقدر محسوس نیست که سرعت پروژه را کاهش دهد.
درنتیجه بهتر از کدی را بنویسید که «تمیز» تر است.
_______________
✅ آیا میدانستید حلقه for سریع تر از list.ForEach یا اصلاحا ForEach Lambda است؟
✅ آیا میدانستید حلقه list.ForEach سریع تر از foreach است؟ زیرا list.ForEach داخل خود از for استفاده میکند ولی foreach داخل خود از مکانسیم Enumerator Iteration که به مراتب سنگین تر است، استفاده میکند.
✅ آیا میدانستید حلقه for که مقدار count آن توسط یک متغیر خوانده شود سریع تر از حلقه for ایی است که مقدار count خود را از list.Count میخواند؟ زیرا سرعت خواندن متد get یک property زمانبر تر از خواندن مقدار یک متغیر است.
مثال :
var count = list.Count;
for (int i = 0; i < count ; i++) { }
از روش زیر سریع تر است
for (int i = 0; i < list.Count ; i++) { }
نتیجه :
در تست انجام شده، سرعت اجرای حلقه ها روی 100 میلیون آیتم به ترتیب زیر است
1- حلقه for که از متغیر count میخواند (زمان : 378 میلی ثانیه)
2- حلقه for که از خاصیت list.Count میخواند (زمان : 415 میلی ثانیه)
3- حلقه list.ForEach یا اصطلاحا ForEach Lambda (زمان : 650 میلی ثانیه)
4- حلقه foreach (زمان : 1136 میلی ثانیه)
همانطور که مشاهده میکنید تفاوت این ها آنقدر محسوس نیست که سرعت پروژه را کاهش دهد.
درنتیجه بهتر از کدی را بنویسید که «تمیز» تر است.
_______________
👍1