یه وقتایی میشه که با حجم دیتای بالا سروکار داریم و سعی میکنیم تا جای ممکن کدمون رو بهینه کنیم ولی چیزی که گاهی وقتا از دستمون در میره که اون رو هم میتونیم بهینه تر کنیم مصرف حافظه هست.
فرض کن کوئری خودت رو تا جای ممکن بهینه کردی و میخوای دیتای نهایی که از دیتابیس گرفتی رو پردازش کنی ولی خب این دیتا هم میتونه منابع حافظه رو درگیر کنه اینجاس که Lazy Collection لاراول میاد وسط. فیچری که باهاش میتونی دیتای fetch شده رو دونه به دونه پردازش کنی و اینطوری حجم حافظه خیلی کمتری مصرف میشه.
اگه دوست داری بیشتر راجع به این فیچر ساده و خیلی کاربردی بدونی یه مقاله توی مدیوم منتشر کردم و با یه مثال ساده توضیح دادم که چطور کار میکنه. راستی خوشحال میشم بهم فیدبک بدی
https://farshadth.medium.com/optimizing-memory-usage-in-laravel-by-lazy-collections-71ea6346c9d8
@DevTwitter | <Farshad Tofighi/>
فرض کن کوئری خودت رو تا جای ممکن بهینه کردی و میخوای دیتای نهایی که از دیتابیس گرفتی رو پردازش کنی ولی خب این دیتا هم میتونه منابع حافظه رو درگیر کنه اینجاس که Lazy Collection لاراول میاد وسط. فیچری که باهاش میتونی دیتای fetch شده رو دونه به دونه پردازش کنی و اینطوری حجم حافظه خیلی کمتری مصرف میشه.
اگه دوست داری بیشتر راجع به این فیچر ساده و خیلی کاربردی بدونی یه مقاله توی مدیوم منتشر کردم و با یه مثال ساده توضیح دادم که چطور کار میکنه. راستی خوشحال میشم بهم فیدبک بدی
https://farshadth.medium.com/optimizing-memory-usage-in-laravel-by-lazy-collections-71ea6346c9d8
@DevTwitter | <Farshad Tofighi/>
👍24❤3🔥3🤣3
یه ریپازیتوری زدم که توش داکر فایل و کامپوز
(Flask-Gunicorn-Nginx reverse proxy)
رو قرار دادم. اگر توسعه دهنده Flask هستید میتونید از داکر فایل های این ریپازیتوری استفاده کنید
+ اگر احساس کردید میتونید بهترش کنید بی صبرانه منتظر PR های زیباتون هستم :)
https://github.com/free-programmers/flask-gunicorn-nginx
@DevTwitter | <Ali-Sharify/>
(Flask-Gunicorn-Nginx reverse proxy)
رو قرار دادم. اگر توسعه دهنده Flask هستید میتونید از داکر فایل های این ریپازیتوری استفاده کنید
+ اگر احساس کردید میتونید بهترش کنید بی صبرانه منتظر PR های زیباتون هستم :)
https://github.com/free-programmers/flask-gunicorn-nginx
@DevTwitter | <Ali-Sharify/>
👍21🔥3❤1
اگر می خواهید در مصاحبه های برنامه نویسی سوال های بک اند فرانت اند و انواع استک جواب دهید این اپلیکیشن ها در موبایلتان نصب و مطالعه کنید
javanoscript interview
Front-end interview
frontend QA interview
که سومی سوال جواب تمام زبان ها فریم ورک ها و تکنولوژی های،برنامه نویسی داره
حتی سومی من چک کردم مثلا postman bi و... هم داره
react.js interview
typenoscript Quiz
@DevTwitter | <Pooria AshkevarVakili/>
javanoscript interview
Front-end interview
frontend QA interview
که سومی سوال جواب تمام زبان ها فریم ورک ها و تکنولوژی های،برنامه نویسی داره
حتی سومی من چک کردم مثلا postman bi و... هم داره
react.js interview
typenoscript Quiz
@DevTwitter | <Pooria AshkevarVakili/>
🔥28👎5👍4🤣1
فریم ورک ویو جی اس ورژن 3.5 متشر کرد و در این ورژن یک سری قابلیت و بهبود های خوبی شاهد هستیم و در این پست به صورت کامل این تغییرات بررسی میکنیم.
https://code-news.com/p/vue-3-5-updates
@DevTwitter | <Code News/>
https://code-news.com/p/vue-3-5-updates
@DevTwitter | <Code News/>
👍21❤4🔥4👎3
اگه به برنامه نویسی RUST علاقمند هستید و دوست دارید باهاش کارهای redteam انجام بدید، این مخزن میتونه کمکتون کنه.
در این مخزن یسری تکنیکهایی که در تیم های قرمز یا توسعه ی بدافزار استفاده میشه، در زبان RUST پیاده سازی و آموزش داده شده.
https://github.com/Whitecat18/Rust-for-Malware-Development
@DevTwitter | <OnHexGroup/>
در این مخزن یسری تکنیکهایی که در تیم های قرمز یا توسعه ی بدافزار استفاده میشه، در زبان RUST پیاده سازی و آموزش داده شده.
https://github.com/Whitecat18/Rust-for-Malware-Development
@DevTwitter | <OnHexGroup/>
👍24👎7🤣5
This media is not supported in your browser
VIEW IN TELEGRAM
این ریپو یک search engine اپن سورس به اسم MindSearch هست که بر اساس فریمورک Multi-agent هست و قابل رقابت Perplexity Pro و SearchGPT. میتونید سیستم سرچ خودتون را لوکال و یا روی سرور خودتون دیپلوی کنید.
https://github.com/InternLM/MindSearch
@DevTwitter | <Mehdi Allahyari/>
https://github.com/InternLM/MindSearch
@DevTwitter | <Mehdi Allahyari/>
👍27🔥4👎1
👍124👎43🤣15🔥1
عه راستی ما برنامه نویسا درون گراییم، گپ نمیزنیم...
🤣228👎15👍11🔥5
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ - قسمت اول
پی اچ پی در مقایسه با زبانهایی مثل GO کندتر است. دلیلش این است که هر درخواست PHP یک فرآیند جدید را شروع میکند. این فرآیند باید از ابتدا تجزیه و اجرا شود و سپس خاموش شود. یعنی هر پروسه به طور کامل بسته شده و از حافظه خارج میشود.
این یعنی PHP نمیتواند چیزی از پردازشهای قبلی را در حافظه نگه دارد و باید برای هر درخواست جدید از صفر شروع کند. نتیجه این کار، در تعداد درخواستهای بالا، عملکرد کندتر و مصرف بیشتر منابع سرور است. این روش را "Request-Response" مینامند.
اما راهکار برای وردپرس و PHP چی بود؟
برای حل این مشکل، از PHP-FPM استفاده شد. PHP-FPM باعث میشود که چند فرآیند PHP از قبل آماده به کار باشند. بنابراین، وقتی درخواست جدیدی میآید، دیگر لازم نیست PHP از صفر شروع کند. این فرآیندهای آماده به کار، درخواستها را سریعتر پردازش کرده و منابع سرور بهتر استفاده میشوند.
@DevTwitter | <Farhad Safari/>
پی اچ پی در مقایسه با زبانهایی مثل GO کندتر است. دلیلش این است که هر درخواست PHP یک فرآیند جدید را شروع میکند. این فرآیند باید از ابتدا تجزیه و اجرا شود و سپس خاموش شود. یعنی هر پروسه به طور کامل بسته شده و از حافظه خارج میشود.
این یعنی PHP نمیتواند چیزی از پردازشهای قبلی را در حافظه نگه دارد و باید برای هر درخواست جدید از صفر شروع کند. نتیجه این کار، در تعداد درخواستهای بالا، عملکرد کندتر و مصرف بیشتر منابع سرور است. این روش را "Request-Response" مینامند.
اما راهکار برای وردپرس و PHP چی بود؟
برای حل این مشکل، از PHP-FPM استفاده شد. PHP-FPM باعث میشود که چند فرآیند PHP از قبل آماده به کار باشند. بنابراین، وقتی درخواست جدیدی میآید، دیگر لازم نیست PHP از صفر شروع کند. این فرآیندهای آماده به کار، درخواستها را سریعتر پردازش کرده و منابع سرور بهتر استفاده میشوند.
@DevTwitter | <Farhad Safari/>
👍63🤣35👎8
زبان RSQL مخفف Restricted SQL برای فیلتر کردن دادهها در APIهای RESTful استفاده میشه
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
@DevTwitter | <MehrdadLinux/>
اگر نیاز به پیاده سازی فیلتر های RQL/RSQL/FIQL
در پایتون روی Django REST framework داشتید
این کتابخانه را یک نگاهی داشته باشید
https://github.com/njoyard/django-rql-filter
@DevTwitter | <MehrdadLinux/>
👍9❤7🤣4
DevTwitter | توییت برنامه نویسی
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ - قسمت اول پی اچ پی در مقایسه با زبانهایی مثل GO کندتر است. دلیلش این است که هر درخواست PHP یک فرآیند جدید را شروع میکند. این فرآیند باید از ابتدا تجزیه و اجرا شود و سپس خاموش شود. یعنی هر پروسه به طور…
چرا PHP نسبت به بقیه زبانها کندتر است و راهکار چیست؟ قسمت دوم
کندی PHP برای شرکتها و سازمانهای بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع میشد و این بار اضافی برای سازمانها توجیهپذیر نبود. به همین دلیل فیسبوک تصمیم گرفت معماری HHVM را طراحی کند، که کد PHP را به بایتکد تبدیل کرده و بهصورت Just-In-Time (JIT) کامپایل میکرد.
حالا JIT برای PHP چه کاری انجام میدهد؟
برای توضیح بهتر، تصور کنید یک تعمیرکار یخچال برای تعمیر روزانه در منازل، همه ابزارهای خود را با خودش ببرد. این کار نه تنها او را خسته میکند، بلکه باعث مصرف بیش از حد انرژی و منابع هم میشود.
اما اگر او فقط ابزارهای مورد نیاز برای تعمیر هر یخچال را همراه داشته باشد، کارش سریعتر و بهینهتر انجام میشود.
و jit دقیقاً همین کار را برای کامپایل یک برنامه انجام میدهد؛ یعنی هر بخش از کد فقط زمانی که به آن نیاز باشد، کامپایل و اجرا میشود.
فیسبوک با این روش تونست یک پلتفرم بزرگ رو در اون زمان با php که تقریبا در زبان php ناممکن به نظر میرسید رو عملی کنه
@DevTwitter | <Farhad Safari/>
کندی PHP برای شرکتها و سازمانهای بزرگی مانند فیسبوک به یک چالش جدی تبدیل شده بود، زیرا هر فرآیند از ابتدا شروع میشد و این بار اضافی برای سازمانها توجیهپذیر نبود. به همین دلیل فیسبوک تصمیم گرفت معماری HHVM را طراحی کند، که کد PHP را به بایتکد تبدیل کرده و بهصورت Just-In-Time (JIT) کامپایل میکرد.
حالا JIT برای PHP چه کاری انجام میدهد؟
برای توضیح بهتر، تصور کنید یک تعمیرکار یخچال برای تعمیر روزانه در منازل، همه ابزارهای خود را با خودش ببرد. این کار نه تنها او را خسته میکند، بلکه باعث مصرف بیش از حد انرژی و منابع هم میشود.
اما اگر او فقط ابزارهای مورد نیاز برای تعمیر هر یخچال را همراه داشته باشد، کارش سریعتر و بهینهتر انجام میشود.
و jit دقیقاً همین کار را برای کامپایل یک برنامه انجام میدهد؛ یعنی هر بخش از کد فقط زمانی که به آن نیاز باشد، کامپایل و اجرا میشود.
فیسبوک با این روش تونست یک پلتفرم بزرگ رو در اون زمان با php که تقریبا در زبان php ناممکن به نظر میرسید رو عملی کنه
@DevTwitter | <Farhad Safari/>
👍48🤣9👎3
یک رایتآپ خیلی خوب در مورد Exploit کردن CORS که بعضی از use caseهای آن خیلی جذاب هستند مثل به سرقت بردن توکنهای CSRF قبل از دسترسی بهEndpointهای حساس که با Exploit کردن CORS همراه شده است.
https://outpost24.com/blog/exploiting-permissive-cors-configurations/
@DevTwitter | <Vahid Nameni/>
https://outpost24.com/blog/exploiting-permissive-cors-configurations/
@DevTwitter | <Vahid Nameni/>
👍9🔥5
از بدیهای آنریل اینه که بدون اعلام قبلی یهو یه کامیت دراپ میشه کامل یه چیزی رو شخم میزنه، مثل این مورد که بخاطر تغییر Layout دیتای OpenXR باعث بریک شدن API هندترکینگ آنریل شده. ۳ماهه میدونم و هنوز وقت نشده تغییرات رو اعمال کنم و Preview 1 دیروز معرفی شد
http://github.com/EpicGames/UnrealEngine/
@DevTwitter | <Mamadou On GameDev/>
http://github.com/EpicGames/UnrealEngine/
@DevTwitter | <Mamadou On GameDev/>
🤣23👍5
یه دولوپر بعد از ۳۰ سال کار با ویندوز به لینوکس مهاجرت کرده، سر چی؟
ماجرا اینه که شش تا کارت گرافیک ۲۴ گیگابایتی واسه اجرای مدلهای AI میخره و یکی یکی به سیستم اضافه میکنه، رو ویندوز افت عملکرد زیادی میبینه، یعنی از کل ظرفیت کارتها نمیتونه استفاده کنه.
بعد میاد لینوکس رو به شکل مجازی داخل ویندوز اجرا میکنه و دوباره تست میگیره که کمک زیادی نمیکنه، نهایتا تصمیم میگیره یه لینوکس مستقیما نصب کنه.
بعد از تغییر ویندوز به لینوکس شاهد افزایش ۳ برابری سرعت اجرای وظایف میشه و سیستمش هم به حافظه بیشتری دسترسی پیدا میکنه.
سرعت بالاتر معنیش اینه که میتونه مدلهای بزرگتر رو هم اجرا کنه، کاری که داخل ویندوز نمیتونست.
در کل ماجرای کاربر Inevitable-Start-653 هم دوست داشتید میتونید بخونید، جالب هست.
https://www.reddit.com/r/Oobabooga/comments/1b1pm0m/after_30_years_of_windowsive_switched_to_linux/
@DevTwitter | <Soroush Ahmadi/>
ماجرا اینه که شش تا کارت گرافیک ۲۴ گیگابایتی واسه اجرای مدلهای AI میخره و یکی یکی به سیستم اضافه میکنه، رو ویندوز افت عملکرد زیادی میبینه، یعنی از کل ظرفیت کارتها نمیتونه استفاده کنه.
بعد میاد لینوکس رو به شکل مجازی داخل ویندوز اجرا میکنه و دوباره تست میگیره که کمک زیادی نمیکنه، نهایتا تصمیم میگیره یه لینوکس مستقیما نصب کنه.
بعد از تغییر ویندوز به لینوکس شاهد افزایش ۳ برابری سرعت اجرای وظایف میشه و سیستمش هم به حافظه بیشتری دسترسی پیدا میکنه.
سرعت بالاتر معنیش اینه که میتونه مدلهای بزرگتر رو هم اجرا کنه، کاری که داخل ویندوز نمیتونست.
در کل ماجرای کاربر Inevitable-Start-653 هم دوست داشتید میتونید بخونید، جالب هست.
https://www.reddit.com/r/Oobabooga/comments/1b1pm0m/after_30_years_of_windowsive_switched_to_linux/
@DevTwitter | <Soroush Ahmadi/>
🔥87👍26❤11👎5
این سایت futureme.org عالیه. مخصوصاً اگه در مسیری هستین که نسبت به آینده مرددین.
میتونین به خودِ آیندهتون ایمیل بزنین (خصوصی/عمومی، ۶ ماه، یک سال یا ده بیست سال دیگه) و میرسه. نامههای بامزه عمومی بقیه رم داره (مثل این بعد ۱۷ سال) و نیز آرشیو خصوصی خودتون رو هم!
@DevTwitter | <لوکوموتیو/>
میتونین به خودِ آیندهتون ایمیل بزنین (خصوصی/عمومی، ۶ ماه، یک سال یا ده بیست سال دیگه) و میرسه. نامههای بامزه عمومی بقیه رم داره (مثل این بعد ۱۷ سال) و نیز آرشیو خصوصی خودتون رو هم!
@DevTwitter | <لوکوموتیو/>
👍29🔥4🤣2
اکثر apikey هایی که روی تارگت پیدا میشه چیزایی چرت و بی ارزش هستند ولی گاها از توشون چیز خوبم در میاد
این گیت در مورد هر سرویس و نحوه تستش یه توضیح داده
اگه ناشناخته بودن براتون حتما تست کنید
https://github.com/streaak/keyhacks
@DevTwitter | <Arshiya/>
این گیت در مورد هر سرویس و نحوه تستش یه توضیح داده
اگه ناشناخته بودن براتون حتما تست کنید
https://github.com/streaak/keyhacks
@DevTwitter | <Arshiya/>
🔥18👍2👎1
اگر میخواید پروسه ساخت یک چت بات با RAG رو فقط تبدیل به چند تا API CALL کنید میتونید از API اوپن سورسی که نوشتم استفاده کنید. همه چی از embeding تا ساخت Chat completions اتوماتیک انجام میشه
https://github.com/xmannii/Maux-RAG-API
@DevTwitter | <Mani/>
https://github.com/xmannii/Maux-RAG-API
@DevTwitter | <Mani/>
👍13🤣3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
کمپانی Meta ی مجموعه مدل به اسم MovieGen که ساخت ویدیو را متحول کرده. Movie Gen چهار قابلیت ارائه میدهد: تولید ویدیو، ویدیوهای شخصیسازی شده، ویرایش دقیق ویدیو و تولید صدا. کیفیت ویدیوها واقعا بالاست بخصوص درآوردن نور و فیزیک توی ویدیو واقعا سخته.
https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/
@DevTwitter | <Mehdi Allahyari/>
https://ai.meta.com/blog/movie-gen-media-foundation-models-generative-ai-video/
@DevTwitter | <Mehdi Allahyari/>
👍10🔥9
سوال مصاحبه: چطور میشه بررسی کرد که نام کاربری بین یک میلیارد کاربر تکراری نباشه؟
این روزها با رشد سریع کسبوکارها، ثبتنام کاربرهای جدید هم به یه چالش تبدیل شده. یکی از مهمترین بخشها اینه که مطمئن بشیم هر کاربر یه نام کاربری منحصربهفرد داره. اخیراً در مورد این موضوع یه تحقیقی کردم و دو راهحل خوب پیدا کردم: استفاده از حافظه Redis و فیلتر Bloom. هر دو کمک میکنن سریع و بدون فشار زیاد به سیستم، نام کاربری جدید رو بررسی کنیم.
مشکل کجاست؟
اگه بخوایم از روشهای سنتی و دیتابیس برای بررسی نام کاربری استفاده کنیم، با زیاد شدن کاربرها سیستم کند میشه و با مشکلات زیر روبهرو میشیم:
- کندی در درخواستها
- فشار زیاد به دیتابیس، که باعث مصرف زیاد منابع میشه.
- مشکل در مقیاسپذیری، یعنی وقتی تعداد درخواستها زیاد بشه، سرور نمیتونه همه رو مدیریت کنه.
استفاده از Redis: سریع ولی پرمصرف
ردیس Redis کمک میکنه که بررسی نام کاربری خیلی سریع بشه، چون دادهها رو توی حافظه ذخیره میکنه. اما این روش یه مشکل بزرگ داره: حافظه زیادی مصرف میکنه. مثلاً برای یک میلیارد نام کاربری به 15 گیگابایت حافظه نیاز داریم! که تو سیستمهای بزرگ، خیلی پرهزینه و غیرعملی میشه.
فیلتر Bloom: ساده، بهینه و کممصرف
حالا بریم سراغ فیلتر Bloom. این فیلتر یه روش خیلی بهینهتره که فضای حافظه خیلی کمتری استفاده میکنه. برای همون یک میلیارد نام کاربری، فقط 1.67 گیگابایت حافظه نیاز داره!
اما فیلتر Bloom چیه؟ بذار یه مثال ساده بزنم:
فرض کن یه کیف داری که یه سری جیب کوچیک داره. هر بار که میخوای یه نام کاربری جدید رو ذخیره کنی، یه سری کلید (یعنی همون الگوریتمهای هش) بهت میگه تو کدوم جیبهای کیف بذاری. بعد اگه بخوای ببینی اون نام کاربری قبلاً ذخیره شده یا نه، فقط کافیه جیبهای مشخص شده رو چک کنی. اگه تو هر جیب چیزی باشه، یعنی احتمالاً اون نام کاربری قبلاً استفاده شده. ولی اگه یکی از جیبها خالی باشه، مطمئنی که اون نام کاربری وجود نداره.
با این روش:
- حافظه کمی استفاده میشه
- سرعت بررسی خیلی بالاست
البته یه نکته کوچیک داره: بعضی وقتا ممکنه به اشتباه بگه که یه نام کاربری هست در حالی که نیست (این همون خطای مثبت یا False Positive هست)، ولی در اکثر مواقع این خطا قابل چشمپوشیه.
نتیجهگیری
اگه با سیستمهایی کار میکنید که میلیونها یا حتی میلیاردها کاربر دارن، فیلتر Bloom یه راهحل خیلی بهینه و هوشمند برای بررسی یونیک بودن نام کاربریه. هم توی حافظه صرفهجویی میکنه، هم سرعت بررسی رو بالا نگه میداره.
@DevTwitter | <Massimo Dev/>
این روزها با رشد سریع کسبوکارها، ثبتنام کاربرهای جدید هم به یه چالش تبدیل شده. یکی از مهمترین بخشها اینه که مطمئن بشیم هر کاربر یه نام کاربری منحصربهفرد داره. اخیراً در مورد این موضوع یه تحقیقی کردم و دو راهحل خوب پیدا کردم: استفاده از حافظه Redis و فیلتر Bloom. هر دو کمک میکنن سریع و بدون فشار زیاد به سیستم، نام کاربری جدید رو بررسی کنیم.
مشکل کجاست؟
اگه بخوایم از روشهای سنتی و دیتابیس برای بررسی نام کاربری استفاده کنیم، با زیاد شدن کاربرها سیستم کند میشه و با مشکلات زیر روبهرو میشیم:
- کندی در درخواستها
- فشار زیاد به دیتابیس، که باعث مصرف زیاد منابع میشه.
- مشکل در مقیاسپذیری، یعنی وقتی تعداد درخواستها زیاد بشه، سرور نمیتونه همه رو مدیریت کنه.
استفاده از Redis: سریع ولی پرمصرف
ردیس Redis کمک میکنه که بررسی نام کاربری خیلی سریع بشه، چون دادهها رو توی حافظه ذخیره میکنه. اما این روش یه مشکل بزرگ داره: حافظه زیادی مصرف میکنه. مثلاً برای یک میلیارد نام کاربری به 15 گیگابایت حافظه نیاز داریم! که تو سیستمهای بزرگ، خیلی پرهزینه و غیرعملی میشه.
فیلتر Bloom: ساده، بهینه و کممصرف
حالا بریم سراغ فیلتر Bloom. این فیلتر یه روش خیلی بهینهتره که فضای حافظه خیلی کمتری استفاده میکنه. برای همون یک میلیارد نام کاربری، فقط 1.67 گیگابایت حافظه نیاز داره!
اما فیلتر Bloom چیه؟ بذار یه مثال ساده بزنم:
فرض کن یه کیف داری که یه سری جیب کوچیک داره. هر بار که میخوای یه نام کاربری جدید رو ذخیره کنی، یه سری کلید (یعنی همون الگوریتمهای هش) بهت میگه تو کدوم جیبهای کیف بذاری. بعد اگه بخوای ببینی اون نام کاربری قبلاً ذخیره شده یا نه، فقط کافیه جیبهای مشخص شده رو چک کنی. اگه تو هر جیب چیزی باشه، یعنی احتمالاً اون نام کاربری قبلاً استفاده شده. ولی اگه یکی از جیبها خالی باشه، مطمئنی که اون نام کاربری وجود نداره.
با این روش:
- حافظه کمی استفاده میشه
- سرعت بررسی خیلی بالاست
البته یه نکته کوچیک داره: بعضی وقتا ممکنه به اشتباه بگه که یه نام کاربری هست در حالی که نیست (این همون خطای مثبت یا False Positive هست)، ولی در اکثر مواقع این خطا قابل چشمپوشیه.
نتیجهگیری
اگه با سیستمهایی کار میکنید که میلیونها یا حتی میلیاردها کاربر دارن، فیلتر Bloom یه راهحل خیلی بهینه و هوشمند برای بررسی یونیک بودن نام کاربریه. هم توی حافظه صرفهجویی میکنه، هم سرعت بررسی رو بالا نگه میداره.
@DevTwitter | <Massimo Dev/>
1👍99🔥14👎9❤2