این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁
یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد.
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین.
@ManiFoldsPython
یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد.
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین.
@ManiFoldsPython
👎5
Python BackendHub
این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁 یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد. اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین…
اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین اشتباه میرین.
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین
برای پاسخ دادن به result و درآوردن true یا false بودن هر کدوم, نیازی به حفظ کردن تغییرات ندارین
Python BackendHub
این یکی خیلی سخته. 15 مین طول کشید تا سوالشو طراحی کنم 😁 یک ارفاق کردم همینکه sum رو به دست بیارین کافیه. ولی بعدا جواب تک تکشو میذارم و توضیح میدم که چرا چنین شد. اگه برای پاسخ به این سوال دارین trace میکنید که چه تغییری تو لیست رخ داده, کاملا مسیر رو دارین…
برای پاسخ دادن به این سوال کافیه درک پایتون خوبی داشته باشیم.
وقتی از [:] استفاده میکنیم یعنی memory address اون آبجکت عوض میشه و کپی میشه تو یک آدرس دیگه. در حالی که وقتی از a = b استفاده میکنیم یعنی رفرنس میشه و مموری آدرس همونه. پس هر بلایی سر first بیاد سره third هم میاد. پس
اما مورد چهار بخاطر بحث interning که تو پایتون وجود داره و اعداد -5 تا 256 کش میشن. ولی برای اعداد بعد از 256 دیگه همیشه false هستند. پس مورد بعدی هم false میشه بخاطر وجود عدد 300
من یک مطلبی قبلا تو کانال فرستادم صرفا با دو پارگراف اخرش موافق بودم, وگرنه وقتی همچین سوالاتی تو interview های شرکت های بزرگ پرسیده میشه مثل ماکروفاست, پس قطعا اشتباه نیست.
@ManiFoldsPython
وقتی از [:] استفاده میکنیم یعنی memory address اون آبجکت عوض میشه و کپی میشه تو یک آدرس دیگه. در حالی که وقتی از a = b استفاده میکنیم یعنی رفرنس میشه و مموری آدرس همونه. پس هر بلایی سر first بیاد سره third هم میاد. پس
first is thirdو بخاطر [ : ] استفاده شده هم ممورس آدرس second عوض شده. پس اگه دقیقا عینه هم باشن چون رفرنسشون یکی نیست و یکجا ذخیره نشدن همیشه is براشون false هست.
> True
second is thirdمورد چهار دقیقا last و first یکی هستن چون هیچ بلایی سره first نیاوردیم.
> False
اما مورد چهار بخاطر بحث interning که تو پایتون وجود داره و اعداد -5 تا 256 کش میشن. ولی برای اعداد بعد از 256 دیگه همیشه false هستند. پس مورد بعدی هم false میشه بخاطر وجود عدد 300
a = 300سکند ایندکس اولش تغییری نکرده, و 1 مونده. طبق بحث بالا
b = 300
a is b
> False
a = 1بعضی دوستان تو چند ثانیه حل کردن, حل همچین سوالی باعث میشه شما درک بهتری از مموری و رفرنس داشته باشین. اینطوری باعث میشه کد scalable بنویسید!
b = 1
a is b
> True
من یک مطلبی قبلا تو کانال فرستادم صرفا با دو پارگراف اخرش موافق بودم, وگرنه وقتی همچین سوالاتی تو interview های شرکت های بزرگ پرسیده میشه مثل ماکروفاست, پس قطعا اشتباه نیست.
@ManiFoldsPython
👍4😱1
Python BackendHub
این کوییز برای درک پایتونه و فرش نگه داشتن ذهن 😅 درجه سختی: آسان @ManiFoldsPython
در خصوص این کد, اولا یک اشتباهی کردم باید first = 1 هم میذاشتم که نکته اش سنگین تر میشد.
من یک اشتباهی تو کد نویسیم کرده بودم و یک نفر به من گفت, رفتم و دلیلش رو پیدا کردم و به این نکته رسیدم که الان میخوام بهتون بگم.
بحث namespace هست و mutable و immutable و دو تا از scope های پایتون, global و local هست. یکی از بحث های ابتدایی پایتون 😅
خب اولا وقتی تابع رو با یک Argument ای صدا میزنیم, اون Argument اگه mutable باشه, اگه اون Argument رو تغییر بدیم باعث میشه تو سطح global scope هم تغییر کنه.
یعنی دقیقا بلایی که سره second اومد.
اما چرا lst که لوکال بود تو تابع f بلایی سره lst اصلی نیاورد؟ چون اون local variable هست و دیگه Argument نیست که مربوط باشه به lst.
اما اگه first = 1 میذاشتیم تو لوکال, بازم بلایی سره var نمیومد. var همیشه 3 میمونه. چرا؟ چون immutable هست.
و حالا شاید متوجه شده باشین که چرا
❌ Don't use mutable values as default value in function parameters
@ManiFoldsPython
من یک اشتباهی تو کد نویسیم کرده بودم و یک نفر به من گفت, رفتم و دلیلش رو پیدا کردم و به این نکته رسیدم که الان میخوام بهتون بگم.
بحث namespace هست و mutable و immutable و دو تا از scope های پایتون, global و local هست. یکی از بحث های ابتدایی پایتون 😅
خب اولا وقتی تابع رو با یک Argument ای صدا میزنیم, اون Argument اگه mutable باشه, اگه اون Argument رو تغییر بدیم باعث میشه تو سطح global scope هم تغییر کنه.
یعنی دقیقا بلایی که سره second اومد.
اما چرا lst که لوکال بود تو تابع f بلایی سره lst اصلی نیاورد؟ چون اون local variable هست و دیگه Argument نیست که مربوط باشه به lst.
اما اگه first = 1 میذاشتیم تو لوکال, بازم بلایی سره var نمیومد. var همیشه 3 میمونه. چرا؟ چون immutable هست.
و حالا شاید متوجه شده باشین که چرا
❌ Don't use mutable values as default value in function parameters
@ManiFoldsPython
Forwarded from CodeNaline | کدنالین
قسمت نهم از فصل دوم کدنالین، مانی.
این قسمت رو با مانی از ترکیه خواهیم داشت. مانی این روزها داخل ترکیه زندگی میکنه و تاجایی که خبر دارم داره تلاش میکنه به هلند مهاجرت کاری کنه. و تاجایی بازم خبر دارم :)، رزومه هاش خیلی خوب مصاحبه میگیره. مانی متخصص پایتون و بکاند، در کراولینگ تخصص داره و پروژههایی هم با chatGPT زده :).
سوالاتتتون میتونید زیر همین پست بپرسید ❤️✨🤝
@CodeNaline
این قسمت رو با مانی از ترکیه خواهیم داشت. مانی این روزها داخل ترکیه زندگی میکنه و تاجایی که خبر دارم داره تلاش میکنه به هلند مهاجرت کاری کنه. و تاجایی بازم خبر دارم :)، رزومه هاش خیلی خوب مصاحبه میگیره. مانی متخصص پایتون و بکاند، در کراولینگ تخصص داره و پروژههایی هم با chatGPT زده :).
سوالاتتتون میتونید زیر همین پست بپرسید ❤️✨🤝
@CodeNaline
Forwarded from Python for Data Science
کد بالا رو در دو محیط مختلف اجرا کنید
یکی در یک فایل .py
دیگری در فایل .ipynb
نتایج متفاوت هست!
چرا؟ 😊😊
🔎 @py4ds
یکی در یک فایل .py
دیگری در فایل .ipynb
نتایج متفاوت هست!
چرا؟ 😊😊
🔎 @py4ds
👍2👎1🤮1
Forwarded from Python for Data Science
📌اختلاف این دو حالت برمیگرده به مبحث Interning که در اینجا برای مقادیر Integer در بازهی
🔺اگر دارید توی هر نوعی از شل توی پایتون (python shell , ipython, ...) کد میزنید باید حواستون باشه که این مقادیر یکبار ساخته میشن و برای همیشه از همونا استفاده میشه اما مقادیر خارج از این بازه هربار که لازم باشه از اول ساخته میشه. یعنی id اونها ممکنه با هم فرق داشته باشه
🔺اما اگر کل کد توی فایل .py به پایتون بدید اونو بهینه میکنه و تا زمانی که لازم هست مقادیر integer خارج از اون بازه رو نگه میداره. بنابراین این مقادیر هم مثل مقادیر ذکر شده در بازهی فوق فقط یکبار ساخته میشن.
🔹خلاصه هرجایی دارید از is استفاده میکنید حسابی حواستون رو جمع کنید که یه وقت اچتباهی کد نزنید! 😁
🔎 @py4ds
[-5, 256]هستند.
🔺اگر دارید توی هر نوعی از شل توی پایتون (python shell , ipython, ...) کد میزنید باید حواستون باشه که این مقادیر یکبار ساخته میشن و برای همیشه از همونا استفاده میشه اما مقادیر خارج از این بازه هربار که لازم باشه از اول ساخته میشه. یعنی id اونها ممکنه با هم فرق داشته باشه
🔺اما اگر کل کد توی فایل .py به پایتون بدید اونو بهینه میکنه و تا زمانی که لازم هست مقادیر integer خارج از اون بازه رو نگه میداره. بنابراین این مقادیر هم مثل مقادیر ذکر شده در بازهی فوق فقط یکبار ساخته میشن.
🔹خلاصه هرجایی دارید از is استفاده میکنید حسابی حواستون رو جمع کنید که یه وقت اچتباهی کد نزنید! 😁
🔎 @py4ds
Medium
3 Facts of the Integer Caching in Python
Understand some confusing results made by Python
چطوری prompt نوشتن خیلی مهمه وقتی با chatgpt کار میکنید! برای بهتر prompt دادن باید سواد بیشتری داشته باشین. تو عکس فکر کنم این موضوع خیلی بدیهی باشه.
برای همینه که من معتقدم هرچقدر gpt پیشرفته تر شه, نمیتونه جای انسان رو بگیره و برنامه نویس رو بیکار کنه.
الگوریتم رو از O(n**2) کرد O(n) 👌
@Manifoldspython
برای همینه که من معتقدم هرچقدر gpt پیشرفته تر شه, نمیتونه جای انسان رو بگیره و برنامه نویس رو بیکار کنه.
الگوریتم رو از O(n**2) کرد O(n) 👌
@Manifoldspython
👍8👎1
از serverless سرویس lambda رفتن رو EC2 و ECS و ساختار رو monolith کردن که باعث شد 90درصد هزینه کمتر شه و پرفومنس هم خیلی بهتر شه. میتونید تو بلاگ زیر بیشتر بخونید. این همون قضیه زیره
there is no solution only trade offs
Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%
there is no solution only trade offs
Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%
Aboutamazon
Entertainment
We create and provide access to world-class entertainment through Amazon Originals, Prime Video, Audible, Amazon Games, Twitch, Amazon Music, Prime Gaming, and more. Amazon’s digital entertainment products enable customers to access the latest apps and games…
برگشتم رو لایبری FastAPI ام دارم کار میکنم
یکی از قابلیت هایی که دوست دارم بهش اضافه کنم اینه که شما اینطوری feature اضافه کنی با ارث بری
از طریق یک الگوریتم DFS یا جستجوی عمق اول در گراف ارثبری کلاسها، کار میکنه. یعنی چی؟ یعنی مثلا شما کلسی دارین به اسم A که از B و C ارث بری کرده.
تو عمق دوم بازم همین روندو ادامه میده, اینقدر تکرار میکنه تا برسه به base class که میشه object.
به چه دردی میخوره؟ اگه با یک class آشنا نیستین و خیلی سریع میخواین به همه doc string هاش دسترسی داشته باشین میتونید همچین کاری کنید.
یکی از قابلیت هایی که دوست دارم بهش اضافه کنم اینه که شما اینطوری feature اضافه کنی با ارث بری
import my_moduleخب برای اینکار یادم اومد طبق کتاب fluent python که میتونم از مجیک متود mro استفاده کنم. حالا این مجیک متود چیکار میکنه؟
class YourFastAPI(
my_module.FastAPIExtended
):
pass
# Now my FastAPI class has redis, postgresql, Base User class, Admin Panel
main = YourFastAPI (
featrues = [
my_module.Redis,
my_module.PostgreSQL,
my_module.BaseUser,
my_module.AdminPanel
]
)
از طریق یک الگوریتم DFS یا جستجوی عمق اول در گراف ارثبری کلاسها، کار میکنه. یعنی چی؟ یعنی مثلا شما کلسی دارین به اسم A که از B و C ارث بری کرده.
class A(B,C)میاد تو یک عمق اول B و C رو چک میکنه. بعد چک میکنه که این دو کلس از چیا ارث بری شدند؟
تو عمق دوم بازم همین روندو ادامه میده, اینقدر تکرار میکنه تا برسه به base class که میشه object.
به چه دردی میخوره؟ اگه با یک class آشنا نیستین و خیلی سریع میخواین به همه doc string هاش دسترسی داشته باشین میتونید همچین کاری کنید.
for cls in SomeClass.__mro__:@Manifoldspython
print(
f"obj: {cls.__qualname__}",
cls.__doc__,
"-"*20,
sep="\n"
)
🤯3👍2
اگه طرفدار fastapi و pydantic هستین و از serializer های DRF بدتون میاد این لایبری رو حتما بهش سر بزنید
https://github.com/vitalik/django-ninja
اینم یک لایبری دیگه, که برای دیتافریم هست و با rust و nodejs نوشتن که میتونید ازش استفاده کنید.
https://github.com/pola-rs/polars
@Manifoldspython
https://github.com/vitalik/django-ninja
اینم یک لایبری دیگه, که برای دیتافریم هست و با rust و nodejs نوشتن که میتونید ازش استفاده کنید.
https://github.com/pola-rs/polars
@Manifoldspython
GitHub
GitHub - vitalik/django-ninja: 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
💨 Fast, Async-ready, Openapi, type hints based framework for building APIs - vitalik/django-ninja
👍4
این رودمپ منه, تا چند ماه آینده. 4 شاخه مختلفه, معمولا 2-3 کورس/کتاب همزمان میخونم که ذهنم خسته نشه. شخصا وقتی فقط رو یک کتاب یا کورس تمرکزمو میذارم زود خسته میشم. بعضیاشو خوندم/دیدم, ولی دوست دارم یک بار دیگه بخونم/ببینم و پروژه محور کنارش کد بزنم و بیشتر باهاش بازی کنم.
——————————————————————
Linux
Linux Overview (5h)
Introduction to Linux Virtualization from the Command Line (1h)
Concepts for Securing Your Servers (1h)
LPIC-1: System Administrator Exam 101 (v5 Objectives) (20h)
LPIC-2: Linux Engineer Exam 201 (25h)
Text Editing with Vim (Vi iMproved) (8h)
——————————————————————
Backend
Python deep dive 4 (40h) ✅
Python deep dive 1 (37h) ✅
Two scopes of django (3.x)
Python deep dive 2 (35h)
Python deep dive 3 (35h)
FastAPI Docs
Python Tricks
SQLAlchemy ORM DOCS
Fluent Python
——————————————————————
CI/CD & Devops & Server
AWS Certified Cloud Practitioner (CLF-C01) ✅
Source Control with Git ✅
Github Actions ✅
Introduction to Amazon RDS (3h)
Learn Docker by Doing (20h)
AWS Certified Solutions Architect - Associate (SAA-C03) (45h)
Introduction to Terraform Cloud (4h)
Introduction to Kubernetes (3h)
Kubernetes Essentials (5h)
Kubernetes and Cloud Native Associate (KCNA) (11h)
——————————————————————
Architecture And Software Design And Algorithm
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
The Complete Data Structures and Algorithms Course in Python
The Ultimate Data Structures & Algorithms Course (13h)
The Ultimate Design Patterns By Mosh (8h)
Software Architecture & Technology of Large-Scale Systems (25h)
Patterns of Enterprise Application Architecture (by Martin Fowler)
@ManiFoldsPython
——————————————————————
Linux
Linux Overview (5h)
Introduction to Linux Virtualization from the Command Line (1h)
Concepts for Securing Your Servers (1h)
LPIC-1: System Administrator Exam 101 (v5 Objectives) (20h)
LPIC-2: Linux Engineer Exam 201 (25h)
Text Editing with Vim (Vi iMproved) (8h)
——————————————————————
Backend
Python deep dive 4 (40h) ✅
Python deep dive 1 (37h) ✅
Two scopes of django (3.x)
Python deep dive 2 (35h)
Python deep dive 3 (35h)
FastAPI Docs
Python Tricks
SQLAlchemy ORM DOCS
Fluent Python
——————————————————————
CI/CD & Devops & Server
AWS Certified Cloud Practitioner (CLF-C01) ✅
Source Control with Git ✅
Github Actions ✅
Introduction to Amazon RDS (3h)
Learn Docker by Doing (20h)
AWS Certified Solutions Architect - Associate (SAA-C03) (45h)
Introduction to Terraform Cloud (4h)
Introduction to Kubernetes (3h)
Kubernetes Essentials (5h)
Kubernetes and Cloud Native Associate (KCNA) (11h)
——————————————————————
Architecture And Software Design And Algorithm
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
The Complete Data Structures and Algorithms Course in Python
The Ultimate Data Structures & Algorithms Course (13h)
The Ultimate Design Patterns By Mosh (8h)
Software Architecture & Technology of Large-Scale Systems (25h)
Patterns of Enterprise Application Architecture (by Martin Fowler)
@ManiFoldsPython
Pluralsight
Browse courses by subject | Pluralsight
Browse through our libraries of online resources for you to stay up-to-date on all that is changing your software development, IT ops, cyber security and more.
🔥9👍1
Forwarded from DevTwitter | توییت برنامه نویسی
اگر زبان انگلیسی بلد نباشید، احتمال اینکه در برنامهنویسی پیشرفت کنید کم هست.
اگر هم زبان انگلیسی بلد باشید تضمینی برای این پیشرفت نیست، ولی حداقل به انبوهی از منابع آموزشی رایگان (در هر موضوعی، نه فقط برنامهنویسی) دسترسی پیدا میکنید.
از یاد گرفتن یک زبان دوم ضرر نمیکنید.
@DevTwitter | <Amirreza Gh/>
اگر هم زبان انگلیسی بلد باشید تضمینی برای این پیشرفت نیست، ولی حداقل به انبوهی از منابع آموزشی رایگان (در هر موضوعی، نه فقط برنامهنویسی) دسترسی پیدا میکنید.
از یاد گرفتن یک زبان دوم ضرر نمیکنید.
@DevTwitter | <Amirreza Gh/>
👍14👎1
DevTwitter | توییت برنامه نویسی
اگر زبان انگلیسی بلد نباشید، احتمال اینکه در برنامهنویسی پیشرفت کنید کم هست. اگر هم زبان انگلیسی بلد باشید تضمینی برای این پیشرفت نیست، ولی حداقل به انبوهی از منابع آموزشی رایگان (در هر موضوعی، نه فقط برنامهنویسی) دسترسی پیدا میکنید. از یاد گرفتن یک زبان…
یک نکته ای که اضافه کنم اینه که اگه انگلیسی بلد نباشین همیشه از دنیا چند پله عقب ترین
یعنی تا داک فست ترجمه نشده نمیتونید بخونید
تا آموزش K8s فارسی نیاد نمیتونید یاد بگیرین
تا آموزش داکر فارسی نیاد نمیتونید یاد بگیرین
تا Mojo داکش فارسی نشه یا اموزش نیاد نمیتونید یاد بگیرین..
هیچوقت doc string رو نمیتونید بخونید.
پس هرچقدر برنامه نویس خوبیم که بشید هرچند احتمالش کم, اما همیشه عقبین از دنیا.
@ManiFoldsPython
یعنی تا داک فست ترجمه نشده نمیتونید بخونید
تا آموزش K8s فارسی نیاد نمیتونید یاد بگیرین
تا آموزش داکر فارسی نیاد نمیتونید یاد بگیرین
تا Mojo داکش فارسی نشه یا اموزش نیاد نمیتونید یاد بگیرین..
هیچوقت doc string رو نمیتونید بخونید.
پس هرچقدر برنامه نویس خوبیم که بشید هرچند احتمالش کم, اما همیشه عقبین از دنیا.
@ManiFoldsPython
👍2
احساس میکنم داره دروغ میگه، و fine tunned model هست، سرعت پاسخ دادنش هم مثل ada خیلی سریعه.
@ManiFoldsPython
@ManiFoldsPython
👍5
Forwarded from Compass (Raymond)
This media is not supported in your browser
VIEW IN TELEGRAM
Manual memory management 😂😂😂
#fun
#fun
😁5
Forwarded from Sadra Codes
Compass
Manual memory management 😂😂😂 #fun
یه زمان، سیستم توی سی اینجور بود که شما باید از Malloc استفاده میکردید و از CPU درخواست فضا از رم واسه متغیرتون میکردید. بصورت دستی ست میکردید که فلان متغیر، فلان قدر از رم رو (به بایت) بهش اختصاص بده.
- اگه برنامهنویس یادش میرفت فانکشن
- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
- اگه برنامهنویس دو بار
خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
int age = malloc(32670) // 32kb
و باید حتما یادتون میموند وقتی که کارتون با این متغیر (دیتا) تموم شد، حتما این رفرنسش رو پاک کنید تا اون بلاک از مموری هم پاک شه.free(age) // used to free the memory block
حالا این وسط یه سری بدبختیا بود..- اگه برنامهنویس یادش میرفت فانکشن
free
رو ران کنه: خب خیلی طبیعیه که اگه یادش میرفت free-up کنه، به مموری لیک میخوردیم. گاها دیدید RAM Resource پر میشه و سیستم دیتا رو روی Swap نگهداری میکنه؟ دقیقا همون لحظهس.- اگه برنامهنویس بلافاصله بعد از تعریف متغیر،
free
رو کال میکرد: به راحتی اون بلاک از مموری آزاد میشد و شما اگه جلوتر مقدار متغیر رو چاپ کنید ممکنه یه دیتاهایی پرینت شن که خیلی عجیب و غریب باشن..!! (درواقع ممکنه دیتاهایی باشن که توسط دیگر پروسهها دارن توی اون بلاک از رم نگهداری میشن)- اگه برنامهنویس دو بار
free
رو کال کنه: اگه بار اول فری کال شه، بلاک رم آزاد میشه و دیتایی که داخلشه از بین میره. فرض کنید بین free اول و free دوم یه وقفه ایجاد شه و سیستمعامل یا هر پروسه دیگهای بیاد و دقیقا توی اون بلاک از رم یه دیتای حساس قرار بده. بلافاصله بعد از اینکه free دوم ران میشه، اون دیتای حساس هم از بین میره و پروسه عملا به فنا میره و این اصلا خوب نیس!خلاصه امروز که میبینید خیلی راحت زبانها این Memory Management رو هندل میکنن، همچین دارک هیستوری پشت قضیه بوده.. دلیلشم اینه که سیستمعامل یکم واسش دردسر داره که بتونه منیج کنه مموری رو. واسه همینه که اکثر استراتژیهای فری آپ کردن مموری توسط خود زبانهای برنامهنویسی انجام میشه.
👍12❤1