payamvha/North_RAG huggingface dataset:
پشته‌ای دارای دو یا چند ثبات پشته‌ای است — یکی از آنها رد پشته فراخوانی‌ها را نگه می‌دارد، دیگری (ان) رد پشته(ها) ی دیگر را دنبال می کنند. ثبات پشته‌ای در x86. در ۸۰۸۶، ثبات پشته‌ای اصلی، اشاره گر پشته نامیده می‌شود (Stack Pointer -SP). ثباتِ قسمتِ پشته (Stack segment register -SS) معمولاً برای ذخیره اطلاعاتی در مورد بخش حافظه ای است که پشته فراخوانی‌ها ی برنامه در حال اجرا، را ذخیره می‌کند. SP به بالای پشته فعلی اشاره دارد. به‌طور پیش فرض، پشته در حافظه به سمت پایین رشد می‌کند، بنابراین مقادیر جدید در
به سمت پایین رشد می‌کند، بنابراین مقادیر جدید در آدرس (خانه)های پایین حافظه قرار می‌گیرد. برای وارد کردن مقدار بر روی پشته، دستور codice_1 استفاده می‌شود. برای خارج کردن یک مقدار از روی پشته، دستور codice_2 استفاده می‌شود. مثال: فرض کنید SS = 1000h و SP = 0xF820. این به این معنی است که بالای پشته فعلی، آدرس فیزیکی 0x1F820 است (به دلیل تقسیم‌بندی حافظه در ۸۰۸۶). دو دستورالعمل بعدی این برنامه عبارتند از: PUSH AX PUSH BX این نشان می‌دهد که PUSH چگونه کار می‌کند. معمولاً برنامه در حال اجرا ثبات‌ها را بر روی
معمولاً برنامه در حال اجرا ثبات‌ها را بر روی پشته PUSH می‌کند تا از آنها برای اهداف دیگر استفاده کند، مانند فراخوانی یک سلسله کد که ممکن است مقادیر فعلی ثبت‌ها را تغییر دهد. برای بازگرداندن مقادیر ذخیره شده در پشته، برنامه باید شامل دستورالعمل‌هایی مانند زیر باشد: POP BX POP AX نکته: این برنامه در ابتدا BX را از روی پشته خارج می‌کند، زیرا آخرین بار بر روی پشته قرار داده شد. نکته: در ۸۰۸۶، دستورالعمل codice_1 و codice_2 فقط می‌تواند با عناصر ۱۶ بیتی کار کند. محرک پشته. پردازنده‌های ساده‌تر اشاره گر پشته را
محرک پشته. پردازنده‌های ساده‌تر اشاره گر پشته را در یک ثبات سخت‌افزاری مرتب ذخیره می‌کنند و از واحد محاسبه و منطق (ALU) برای مدیریت ارزش آن استفاده می‌کنند. به‌طور معمول گذاشتن در و برداشتن از پشته به چند عملیات زیر شاخه ای خلاصه می‌شود، به‌طور جداگانه اشاره گر پشته را اضافه یا کم کردن، خواندن از یا ذخیره کردن در حافظه. پردازنده‌های جدیدتر دارای یک موتور پشته اختصاصی برای بهینه‌سازی عملیات پشته‌ای هستند. Pentium M اولین پردازنده x86 بود که یک موتور پشته را معرفی کرد. در پیاده‌سازی آن، نشانگر پشته در میان
معرفی کرد. در پیاده‌سازی آن، نشانگر پشته در میان دو ثبات تقسیم می‌شود: ESP O، که یک ثبات ۳۲ بیتی است، و ESP d، مقدار دلتا ۸ بیتی است که به‌طور مستقیم توسط عملیات پشته به روز می‌شود. کد دستورهای PUSH, POP, CALL و RET به‌طور مستقیم با ثبات ESP d تعامل می‌کنند. اگر ESP d در شرف سرریز باشد یا ثبات ESP توسط دستورالعمل‌های دیگر (هنگامی که ESP d ≠ ۰) مورد استفاده قرار گرفته‌است، یک عملیات زیرشاخه همگام سازی وارد شده‌است که ESP O را با استفاده از ALU به روز می‌کند و ESP d را به ۰ برمی‌گرداند. این طرح به‌طور عمده
و ESP d را به ۰ برمی‌گرداند. این طرح به‌طور عمده در پردازنده‌های بعدی Intel دست نخورده باقی مانده‌است، اگر چه ESP O به ۶۴ بیت گسترش یافته‌است. یک موتور پشته شبیه به مدل اینتل نیز در معماری میکرو AMD K8 پذیرفته شد. در Bulldozer، نیاز به عملیات زیر شاخه هماهنگ ساز حذف شد، اما طراحی داخلی موتور پشته شناخته نشده‌است.
تست پایگاه داده معمولاً شامل یک فرایند لایه ای است، از جمله لایهٔ رابط کاربری (UI)، لایه تجاری، لایه دسترسی به داده‌ها و خود پایگاه داده. لایهٔ رابط کاربری با طراحی رابط پایگاه داده سر و کار دارد، در حالی که لایهٔ تجاری شامل پایگاه داده‌هایی است که از استراتژی‌های تجاری پشتیبانی می‌کنند. اهداف. پایگاه داده‌ها، مجموعه ای از فایل‌های به هم پیوسته در یک سرور، ذخیره‌سازی اطلاعات، ممکن است با داده‌های از نوع مشابه سروکار نداشته باشند، به عنوان مثال پایگاه‌های داده ممکن است ناهمگن باشند. در نتیجه، بسیاری از انواع
ممکن است ناهمگن باشند. در نتیجه، بسیاری از انواع خطاهای پیاده‌سازی و یکپارچه سازی ممکن است در سیستم پایگاه داده‌های بزرگ اتفاق بیفتند که بر عملکرد، قابلیت اطمینان، سازگاری و امنیت سیستم تأثیر منفی بگذارد؛ بنابراین، انجام آزمون برای به دست آوردن یک سیستم پایگاه داده که دارای خواص اسید (تجزیه ناپذیری، سازگاری، انزوا، دوام) یک سیستم مدیریت پایگاه داده باشد، مهم است. یکی از مهم‌ترین لایه‌ها، لایه دسترسی به داده‌ها است که به‌طور مستقیم در طول فرایند ارتباط، با پایگاه داده‌ها سر و کار دارد. تست پایگاه داده
با پایگاه داده‌ها سر و کار دارد. تست پایگاه داده عمدتاً در این لایه صورت می‌گیرد و شامل استراتژی‌هایی نظیر کنترل کیفیت و تضمین کیفیت پایگاه داده‌های حاصل می‌شود. تست در این لایه‌های مختلف اغلب برای حفظ سازگاری سیستم‌های پایگاه داده استفاده می‌شود و اغلب در نمونه‌های زیر دیده می‌شود: انواع تست‌ها و فرایندها. این تصویر حوزه‌های آزمایش که در طول روش‌های مختلف آزمون پایگاه داده مانند تست جعبه سیاه و تست جعبه سفید شرکت دارند را نشان می‌دهد. جعبه سیاه. تست جعبه سیاه شامل تست رابط‌ها و یکپارچگی پایگاه داده‌است که
شامل تست رابط‌ها و یکپارچگی پایگاه داده‌است که شامل موارد زیر است: با کمک این تکنیک‌ها، عملکرد پایگاه داده را می‌توان به‌طور کامل آزمایش کرد. مزایا و معایب تست جعبه سیاه عبارتند از: تولید مورد آزمایش در تست جعبه سیاه نسبتاً ساده است. تولید آن کاملاً مستقل از توسعه نرم‌افزار است و می‌تواند در مرحله اولیه توسعه انجام شود. در نتیجه، برنامه‌نویس اطلاعات بهتری در مورد نحوه طراحی برنامه پایگاه داده دارد و زمان کمتری برای اشکال زدایی صرف می‌کند. هزینه توسعه موارد آزمون جعبه سیاه کمتر از توسعه موارد آرمون جعبه
آزمون جعبه سیاه کمتر از توسعه موارد آرمون جعبه سفید است. اشکال عمده تست جعبه سیاه این است که مشخص نیست که چقدر از برنامه مورد آزمایش قرار گرفته‌است. همچنین، خطاهای خاصی را نمی‌توان تشخیص داد. جعبه سفید. تست جعبه سفید عمدتاً با ساختار داخلی پایگاه داده ارتباط دارد. جزئیات مشخصات از کاربر پنهان می‌شوند. مزیت اصلی آزمایش‌های جعبه سفید در تست پایگاه داده این است که خطای برنامه‌نویسی شناسایی شده‌است، بنابراین خطاهای داخلی در پایگاه داده می‌توانند حذف شوند. محدودیت تست جعبه سفید این است که دستورهای SQL پوشش داده
تست جعبه سفید این است که دستورهای SQL پوشش داده نمی‌شوند. رویکرد WHODATE. هنگامی که موارد آزمون برای تست پایگاه داده تولید می‌شوند، معناشناسی دستورهای SQL باید در موارد تست منعکس شود. برای این منظور، از تکنیکی به نام "WHite bOx Database Application Technique" یا "WHODATE" استفاده می‌شود. همان‌طور که در شکل نشان داده شده‌است، دستورهای SQL به‌طور مستقل به دستور زبان‌های همه منظوره GPL " General-Purpose Language " تبدیل می‌شوند، و سپس با استفاده از تست جعبه سفید مرسوم برای تولید موارد آزمون که شامل معناشناسی
مرسوم برای تولید موارد آزمون که شامل معناشناسی دستورهای SQL است دنبال می‌شود. چهار مرحله. یک پایهٔ دقیق، وضعیت اولیه پایگاه داده قبل از ورود به آزمایش را توصیف می‌کند. بعد از تنظیم پایه‌ها، رفتار پایگاه داده برای موارد آزمون تعریف شده، تست شده‌است. بسته به نتیجه، موارد آزمون تغییر می‌کند یا همان‌طور که هست نگهداری می‌شود. مرحلهٔ «از بین بردن» یا منجر به پایان دادن به آزمایش یا ادامه موارد آزمایشی دیگر می‌شود. برای تست موفق پایگاه داده، معمولاً جریان کاری زیر توسط تک تک تست‌های اجرا شده، انجام می‌شود:
(Stanford NER) نیازمند جاوا ۱/۸ یا بالاتر هستند. ابزار شناساگر موجودیت نام‌ها، طیف گسترده‌ای از تکنیک‌های مبتنی بر یادگیری ماشین و مدل‌های آماری زبان را به همراه واژه‌نامه‌هایی، جهت تحلیل متون و استخراج نام‌ها به کار می‌گیرد. در اصل، ما به آن یک بلوک متن طبقه‌بندی شده می‌گوییم، و این نرم‌افزار آن را از طریق متن پردازش می‌کند، به ساختار متن ما نگاه می‌کند و مطابق آن با مدل‌های آماری برای شناسایی افراد، سازمان‌ها و مکان‌ها اقدام می‌کند. روش راه اندازی. جهت استفاده ابتدا، (Stanford NER) را از وبگاه مخصوص
استفاده ابتدا، (Stanford NER) را از وبگاه مخصوص استنفورد دانلود کنید و آن را به دستگاه خود بیفزایید. هیچ گونه روش نصب پیچیده‌ای برای آن وجود ندارد، شما باید قادر به اجرای (Stanford NER) از پوشه ای که آنرا ذخیره کرده‌اید، باشید. به‌طور معمول، (Stanford NER) از خط فرمان اجرا می‌شود. (Stanford NER) نیز به عنوان «CRF Classifier» شناخته می‌شود. این نرم‌افزار یک پیاده‌سازی کلی از مدل‌های زنجیره خطی شرطی (CRF) را فراهم می‌کند، به عبارت دیگر شما می‌توانید از این کد برای ساخت مدل‌های توالی برای (NER) یا هر کار
کد برای ساخت مدل‌های توالی برای (NER) یا هر کار دیگری استفاده کنید. با وارد کردن فایل‌های متنی به این نرم‌افزار و انتخاب یکی از سه گزینه موجود در بخش «CRF»، نرم‌افزار شروع به تحلیل و پردازش داده‌ها می‌کند و درنهایت اسامی و نام‌ها را در متن با برجسته سازی رنگی نشان می‌دهد. هنگامی که برنامه پردازش را به پایان رساند، می‌توانیم از داده‌های پردازش شده جهت مصور سازی یا تحلیل‌های بعدی خروجی بگیریم.
شوراهای اشتراکی ونزوئلا (به اسپانیایی: consejos comunales) در آوریل ۲۰۰۶ با تصویب قانون شوراهای اشتراکی از سوی حکومت ونزوئلا به وجود آمدند. این قانون به شهروندان محلی این قدرت را می‌داد که شوراهای انتخابی در واحدهای همسایگی تشکیل دهند که در رابطه با سیاست‌های محلی و پروژه‌های مربوط به توسعهٔ جامعه، ابتکار عمل و نظارت داشته‌باشند. شوراهای اشتراکی بسیاری پس از آنکه توسط حکومت ونزوئلا مسلح شدند، پدید آمدند. تا سال ۲۰۰۷ بیش از ۱۹/۵۰۰ شورا در سراسر کشور تأسیس شد و میلیاردها دلار نیز توسط حکومت بولیواری ونزوئلا
و میلیاردها دلار نیز توسط حکومت بولیواری ونزوئلا در راستای حمایت از اقدامات‌شان در میان آن‌ها توزیع گردید. ساختار. شوراهای اشتراکی گروهی از افراد منتخب از یک واحد همسایگی مسکونی هستند که بین ۱۵۰ تا ۴۰۰ خانوار را در مناطق شهری، نزدیک به ۲۰ خانوار را در مناطق روستایی، و ۱۰ خانوار را در مناسق سکونت بومیان در بر می‌گیرد. بدنهٔ تصمیم‌گیرندهٔ اصلی یک شورای اشتراکی را انجمن شهروندان تشکیل می‌دهد. عملکردهای صوری کمیته از ۵ واحد تشکیل می‌شود: همهٔ افراد شورا از مردم درون جامعه هستند که به وسیلهٔ انجمن شهروندان برای
درون جامعه هستند که به وسیلهٔ انجمن شهروندان برای یک دورهٔ زمانی ۲ ساله انتخاب می‌شوند. هیچ شخصی نمی‌تواند همزمان در بیش از یک واحد منصبی را عده‌دار باشد. واحد نظارت اجتماعی. واحد نظارت اجتماعی گروهی متشکل از ۵ عضو جامعه است که به وسیلهٔ انجمن شهروندان انتخاب می‌شود. آن‌ها گروهی مستقل هستند که استفاده از منابع شورا و فعالیت‌ها در راستای برنامهٔ توسعهٔ جامعه را پایش کرده و گزارش می‌کنند. این واحد همچنین با عنوان واحد مبارزه با فساد نیز شناخته می‌شود. جمعیت هماهنگی جامعه. جمعیت هماهنگی جامعه از یک سخنگوی
هماهنگی جامعه. جمعیت هماهنگی جامعه از یک سخنگوی منتخب از میان به ترتیب، اعضای هیئت اجرایی، واحد مدیریت مالی و واحد مبارزه با فساد تشکیل می‌شود و به اعضای جامعه اطلاع‌رسانی کرده و در هماهنگی با نیروهای نظامی محلی قرار دارد. وضعیت کنونی. پس از گذشت ۸ ماه از تصویب قانون، بیش از ۱۶ هزار شورا در سراسر کشور شکل گرفته‌بود. از میان آن‌ها بیش از ۱۲ هزار شورا برای پروژه‌های اجتماعی از بودجهٔ ملی ۵۳ میلیارد دلاری، مبلغی را دریافت می‌کرد که مجموعاً به میزان ۱ میلیارد دلار برآورد می‌شد. شوراها نزدیک به ۳۰۰ بانک اشتراکی
برآورد می‌شد. شوراها نزدیک به ۳۰۰ بانک اشتراکی تأسیس کردند که ۷۰ میلیون دلار وام کوچک ایجاد کرده‌بودند. در مارس ۲۰۰۷ نزدیک به ۱۹/۵۰۰ شورا ثبت شده‌بود. قانون شوراهای اشتراکی آخرین بار در نوامبر ۲۰۰۹ به‌روز و تأیید مجدد شد.
یان مازورکویچ (۲۷ اوت ۱۸۶۹، ۴ مه ۱۹۸۸) با نام مستعار "Radosław"، یک سرباز لهستانی است. او در جنگ جهانی اول شرکت داشت و در مقاومت لهستان علیه نازی‌ها سرهنگ ارتش میهنی بود.او یکی از فرماندهان اصلی قیام ورشو است و رهبری گروه که یکی از بهترین واحد های مسلح و آموزش دیده بودند را در طول قیام به عهده داشت. پس از جنگ مازورکویچ توسط مقامات جمهوری خلق لهستان که دست نشانده مسکو بودند مورد آزار و اذیت قرار گرفت و به رغم این واقعیت که او سعی داشت با رژیم جدید همکاری کند، به مدت دو سال در بازداشت شکنجه و حتی محکوم به
به مدت دو سال در بازداشت شکنجه و حتی محکوم به اعدام شد. اما پس از پایان دوره استالینیستی در سال ۱۹۵۶ آزاد شد و سازمان رسمی کهنه سربازان آزادی و دموکراسی (ZBoWiD) را تاسیس کرد. او در نهایت در نیروهای مسلح جمهوری خلق لهستان درجه ژنرالی را دریافت کرد و مدت کوتاهی قبل از سقوط کمونیسم در اروپای شرقی فوت کرد.
وایت راک (به انگلیسی: White Rock) یک منطقهٔ مسکونی در ایالات متحده آمریکا است که در شهرستان واشینگتن، آرکانزاس واقع شده‌است. وایت راک ۳۸۱٫۰ متر بالاتر از سطح دریا قرار دارد.
تخریب عصبی با تجمع آهن در مغز () یا به اختصار «NBIA» گروه ناهمگونی از اختلالات عصبی است که پژوهش‌ها دربارهٔ آنان ادامه دارد و در آنها، آهن در عقده‌های قاعده‌ای مغز رسوب می‌کند و موجب دیستونی پیشرونده و/یا علائم شبه پارکینسون و/یا سفتی عضلانی (اسپاسیته) و/یا تحلیل‌رفتن عصب چشم‌ها و/یا اضمحلال شبکیه و/یا اختلالات روان‌پزشکی مختلف و/یا اختلالات گوناگون عصبی می‌شود. برخی از این بیماری‌ها با چندین ژن در مسیر متابولیسم چربی مرتبط هستند. NBIA یک بیماری مجزا نیست، بلکه گروهی از بیماری‌های عصبی است که آهن در مغز
بلکه گروهی از بیماری‌های عصبی است که آهن در مغز رسوب کرده و اجسام کروی‌شکل آکسونی در دستگاه عصبی مرکزی به وجود می‌آید. تجمع آهن در هر نقطه‌ای از مغز ممکن است رخ دهد اما در نواحی توده سیاه، جسم مخطط، گوی رنگ‌پریده و هستهٔ دندانه‌دار مخچه شایع‌تر است. علائم این بیماری‌ها شامل ترکیبی از انواع اختلالات حرکتی، مشکلات روانی، تشنج، اختلالات بینایی و افت عملکرد ذهنی است. علت بروز این بیماری‌ها، جهش‌های متعدد در ژن‌هایی است که مستقیماً در متابولیسم آهن شرکت دارند به همراه اختلال در متابولیسم فسفولیپیدها، سِـرامیدها
همراه اختلال در متابولیسم فسفولیپیدها، سِـرامیدها و برخی اختلالات لیزوزومی و همچنین جهش در ژن‌هایی است که هنوز عملکرد آن‌ها مشخص نشده‌است. بیماری در هر سنی می‌تواند آغاز شود: از کودکی تا میانسالی. انواع. گونه‌های دیگر. علاوه بر موارد فوق، چندین گونهٔ نادر و ناشناخته از NBIA شناسایی شده‌است که جزئیات آن به‌خوبی معلوم نیست. مشخصهٔ تمامی این‌ها نیز تجمع آهن در مغز و تخریب آن، به‌ویژه در ناحیهٔ عقده‌های قاعده‌ای است. تشخیص. بر حسب اینکه فرد چه علامتی دارد، اسکن حامل دوپامین مغز (DaTSCAN)، سونوگرافی فراصوتی
حامل دوپامین مغز (DaTSCAN)، سونوگرافی فراصوتی داپلر جمجمه، برش‌نگاری با گسیل پوزیترون و گاهی ام‌آرآی از جمله روش‌هایی است که با آن‌ها می‌توان مکان رسوب آهن و انواع مختلف NBIA را تشخیص داد. در این مواقع، بیماری را به دو گروه تقسیم‌بندی می‌کنند: (۱) زودهنگام، پیشرفت سریع (۲) دیررس، پیشرفت آهسته. گروه اول، تظاهر کلاسیک بیماری است و گروه دوم تظاهر نامتداول آن است. تظاهر بیماری همچنین به سن فرد بستگی دارد. مثلاً چه میزان آهن رسوب یافته و توانایی‌های شناختی-ذهنی فرد چقدر است. درمان. درمان مؤثری برای این
فرد چقدر است. درمان. درمان مؤثری برای این بیماری‌ها هنوز پیدا نشده‌است. در بسیاری از بیماران، تحریک الکتریکی گوی رنگ‌پریده، شدت دیستونی را کاهش می‌دهد، اما جلوی تخریب عصبی را نمی‌گیرد. مابین تظاهرات انواع مختلف این بیماری و همچنین این بیماری با سایر بیماری‌های مغز و اعصاب، هم‌پوشانی و شباهت‌هایی وجود دارد و همین موضوع موجب تشخیص اشتباه می‌شود. درمان‌های موجود علائم را کاهش یا بهبود می‌بخشد، اما جلوی رسوب آهن در مغز را نمی‌گیرند. داروهای عصبی-روانی همچون داروهای دوپامینرژیک، آنتی‌کولینرژیک و تترابنازین جهت
دوپامینرژیک، آنتی‌کولینرژیک و تترابنازین جهت درمان علائم استفاده می‌شوند، اما تأثیری بر سرانجام و عاقب بیماری ندارند.
کارنیتین او-استیل‌ترانسفراز () که با نام اختصاری CRAT شناخته می‌شود، یک آنزیم است که در انسان توسط ژن «"CRAT"» کدگذاری می‌شود. این آنزیم واکنش شیمیایی زیر را کاتالیز می‌کند که طی آن ریشه استیل، موجب جایگزینی اتم هیدروژن در ریشهٔ هیدروکسیل اصلی، بجای کارنیتین می‌شود. اهمیت بالینی. جهش در ژن CRAT، فرد را در معرض ابتلا به مشکلات شدید مغزی و قلبی قرار می‌دهد. از طرفی کاهش فعالیت این آنزیم در بیماران مبتلا به آلزایمر دیده شده‌است. این آنزیم و خانوادهٔ آنزیمی مشابه‌اش، بطور بالقوه ممکن است از اهداف درمانی مهم در
بطور بالقوه ممکن است از اهداف درمانی مهم در دیابت نوع ۲ و سایر بیماری‌ها باشند.
الیزابت والدهایم (زاده ۱۳ آوریل ۱۹۲۲ – درگذشته ۲۸ فوریه ۲۰۱۷) بانوی اول سابق اتریش بود. او همسر کورت والدهایم رئیس‌جمهور اتریش بین سال‌های ۱۹۸۶ تا ۱۹۹۲ (میلادی) بود. الیزابت والدهایم در ۲۸ فوریه ۲۰۱۷، در سن ۹۴ سالگی در وین درگذشت.
نیکولاس فون ورمان (۲۴ دسامبر ۱۸۹۵ - ۲۶ اکتبر ۱۹۵۹) یک ژنرال با پیشینه پروسی بود که در ارتش آلمان نازی خدمت میکرد. ژنرال فون ورمان بیشتر طول جنگ جهانی دوم را در عملیات‌های جبهه شرق سپری کرد و در سال ۱۹۴۴ در دوره کوتاهی فرمانده ارتش نهم را فرماندهی کرد. در همین مدت اندک او در سرکوب قیام ورشو دخالت داشت، اما این سرکوب شامل نابودی پایتخت لهستان و قتل عام تمام ساکنان آن به همراهی نیروهای اس‌اس بود. پس از آن در روز ۴ مه ۱۹۴۵ و در بحبوحه روزهای پایانی جنگ جهانی دوم، فون ورمان به عنوان فرمانده دژ آلپ که در حقیقت
فون ورمان به عنوان فرمانده دژ آلپ که در حقیقت وجود خارجی نداشت منصوب شد. فون ورمان از دریافت کنندگان صلیب شوالیه آهنین است و نهایتاً در ۲۶ اکتبر ۱۹۵۶ در برشتس گادن فوت کرد.
در علم کامپیوتر، بهینه‌سازی برنامه یا بهینه‌سازی نرم‌افزار، روند اصلاح یک سیستم نرم‌افزاری است تا بعضی از جنبه‌های آن را کارآمدتر کند یا از منابع کمتر استفاده کند. به‌طور کلی، یک برنامه کامپیوتری ممکن است بهینه شود تا سریعتر اجرا شود یا بتوان آن را با ذخیره حافظه کمتر یا با استفاده از منابع دیگر یا حتی قدرت کمتری خلق کرد عمومی. اگر چه کلمه "بهینه سازی" ریشه در "بهینه"دارد، فرایند بهینه‌سازی برای تولید یک سیستم به‌طور مطلوب نادر است. سیستم بهینه تنها در یک برنامه یا برای یک مخاطب مطلوب است. ممکن است مقدار
برنامه یا برای یک مخاطب مطلوب است. ممکن است مقدار زمانی که یک برنامه برای انجام برخی کارها طی می‌کند یا حافظه بیشتری که مصرف می‌کند را کاهش دهد. در یک برنامه کاربردی که فضای حافظه در اصل کم است، ممکن است به صورت عمدی یک الگوریتم کندتر را برای استفاده از حافظه کمتر انتخاب شود. اغلب طراحی "یک اندازه که به همه اختصاص داده می‌شود " وجود دارد که در همه موارد به خوبی کار می‌کند، بنابراین مهندسان به منظور بهینه‌سازی ویژگی‌هایی که بیشترین توجه را به خود جلب می‌کنند، در کنار هم قرار می‌گیرند.. علاوه بر این تلاش
در کنار هم قرار می‌گیرند.. علاوه بر این تلاش لازم برای ساختن یک قطعه نرم‌افزاری به‌طور کامل بهینه است - حتی درصورت ناتوانی برای هر گونه پیشرفت در ان - تقریباً همیشه بیش از معقول بودن برای مزایایی است که شامل می‌شود؛ بنابراین فرایند بهینه‌سازی ممکن است قبل از رسیدن به یک راه حل کاملاً مطلوب متوقف شود. خوشبختانه، اغلب موارد این است که بیشترین پیشرفت در اوایل روند انجام می‌شود. سطح بهینه‌سازی. بهینه‌سازی می‌تواند در سطوح مختلف رخ دهد. به‌طور معمول، سطوح بالاتر تأثیر بیشتری دارند و بعداً در یک پروژه تغییر
تأثیر بیشتری دارند و بعداً در یک پروژه تغییر می‌کنند و نیاز به تغییرات قابل توجهی دارند و اگر مجبور باشند تغییرات لازم را انجام دهند بازنویسی کامل خواهند شد؛ بنابراین بهینه‌سازی می‌تواند به‌طور معمول از طریق پالایش از بالا به پایین ادامه یابد، با دستاوردهای بزرگ‌تر اولیه و با کار کمتر به دست می‌آید، و پس از آن دستاوردهای کوچکتر و نیاز به کار بیشتر. با این حال، در برخی موارد عملکرد کلی بستگی به عملکرد بخش‌های بسیار پایین برنامه دارد و تغییرات کوچک در مراحل اولیه در مورد جزئیات پایین سطح می‌تواند تأثیرات
اولیه در مورد جزئیات پایین سطح می‌تواند تأثیرات ناخوشایندی داشته باشد. به‌طور معمول به بهره‌وری در یک پروژه توجه می‌شود - هرچند که این تغییرات قابل توجه است - اما بهینه‌سازی عمده اغلب به عنوان یک پالایش در نظر گرفته می‌شود که دیر یا زود انجام شود. در پروژه‌های در حال اجرا دیگر، به‌طور معمول چرخه بهینه‌سازی وجود دارد، در حالیکه بهبود یک منطقه محدودیت‌های دیگری را نشان می‌دهد و معمولاً زمانی کاهش می‌یابد که عملکرد قابل قبول باشد یا سودو هزینه بیش از حد کوچک باشد. عملکرد بخشی از مشخصات برنامه است - یک برنامه
عملکرد بخشی از مشخصات برنامه است - یک برنامه که آهسته باشدبه‌طور غیرقابل اجتناب برای هدف مناسب نیست: یک بازی ویدیویی با ۶۰ هرتز (فریم در ثانیه) قابل قبول است، اما ۶ فریم در ثانیه غیرقابل قبول و خسته‌کننده است - عملکرد از ابتدا مورد بررسی قرار می‌گیرد تا اطمینان حاصل شود که سیستم قادر به ارائه عملکرد کافی می‌باشد و سیستم نهایی (با بهینه‌سازی) به عملکرد قابل قبول دست می‌یابد. این موضوع گاهی اوقات اینطور برداشت می‌شود که بهینه‌سازی همیشه می‌تواند دیر تر انجام شود، و در نتیجه سیستم‌های نمونه اولیه که - اغلب به
و در نتیجه سیستم‌های نمونه اولیه که - اغلب به میزان زیاد یا بیشتر هستند - و حتی سیستم‌هایی که در نهایت خرابی هستند، زیرا از لحاظ معماری نمی‌توانند به عملکردی که هدف خود قرار داده‌اند دست یابند. مانند اینتل ۴۳2 (1981)که سال‌ها همکاری را برای دستیابی به یک عملکرد قابل قبول مانند آن که (Java (1995 بتواند عملکرد قابل قبولی را با(HotSpot (1999 داشته باشد را انجام دادند. درجه ای که عملکرد بین نمونه اولیه و سیستم تولیدی را نشان می‌دهد تغییر می‌کند و چگونگی ارتقای آن بهینه‌سازی می‌شود، که می‌تواند منبع مهمی از عدم
بهینه‌سازی می‌شود، که می‌تواند منبع مهمی از عدم اطمینان و خطر نمونه باشد. در بالاترین سطح طراحی ممکن است بهینه‌سازی انجام شود تا بهترین استفاده را از منابع موجود، اهداف، محدودیت‌های مورد انتظار داشته باشیم. طراحی معماری یک سیستم عمدتاً بر عملکرد آن تأثیر می‌گذارد. به عنوان مثال، یک سیستم که وابسته به زمان تأخیر شبکه‌ها است (که در آن زمان تأخیر شبکه محدودیت اصلی عملکرد کلی است) بهینه‌سازی می‌شود تا زمان ان را به حداقل برساند، در حالت ایدئال یک درخواست واحد (یا هیچ درخواست، مانند یک پروتکل فشار) به جای چند
(یا هیچ درخواست، مانند یک پروتکل فشار) به جای چند دور دفعات صورت می‌گیرد در اصل نشان می‌دهد که انتخاب‌ها به اهداف طراحی بستگی دارد: هنگام طراحی یک کامپایلر، اگر تدوین سریع اولویت کلیدی باشد، طراحی یک کامپایلر یک گذر سریعتر از یک کامپایلر چند گذر (با فرض انجام کار مشابه) انجام می‌شود، اما اگر سرعت خروجی کد هدف باشد، یک کامپایلر چندتایی بهتر به هدف می‌رسد، حتی اگر طول بکشد. انتخاب پلاتفرم و زبان برنامه‌نویسی در این سطح رخ می‌دهد و تغییر آن‌ها اغلب نیازمند بازنویسی کامل است، هرچند یک سیستم ماژولار ممکن است
کامل است، هرچند یک سیستم ماژولار ممکن است اجازه بازنویسی تنها برخی از مؤلفه‌ها را بدهد - مثلاً یک برنامه پایتون ممکن است بخش‌های عملکردی حیاتی را در C بازنویسی کند. سیستم، انتخاب معماری (مدل سرویس‌گیرنده-رویس‌دهنده ، همتابه‌همتا و غیره) در سطح طراحی رخ می‌دهد و ممکن است دشوار باشد، به خصوص اگر تمام اجزای سازنده را نمی‌توان جایگزین کرد (به عنوان مثال مشتریان قدیمی). با در نظر گرفتن یک طرح کلی، انتخاب خوبی از الگوریتم‌های کارآمد و ساختار داده‌ها و اجرای کارآمد این الگوریتم‌ها و ساختارهای داده‌ها، در ادامه
این الگوریتم‌ها و ساختارهای داده‌ها، در ادامه آمده است. پس از طراحی، انتخاب الگوریتم‌ها و ساختارهای داده بر کارایی بیش از هر جنبه دیگر برنامه تأثیر می‌گذارد. به‌طور کلی، ساختار داده‌ها بیشتر از الگوریتم‌ها تغییر می‌کند، زیرا فرضیه ساختار داده‌ها و فرضیه‌های عملکرد آن در طول برنامه استفاده می‌شود، هرچند این می‌تواند با استفاده از انواع داده‌های انتزاعی در تعاریف تابع به حداقل برسد و تعاریف ساختار داده‌ها محدود شود به چند مکان برای الگوریتم‌ها این به‌طور عمده شامل اطمینان از اینکه الگوریتم‌ها ثابت (O (1،
شامل اطمینان از اینکه الگوریتم‌ها ثابت (O (1، لگاریتمی (O(log "n"، خطی (O ("n" یا در برخی موارد (log-line O(n log nدر ورودی (هر دو در فضا و زمان). الگوریتم‌هایی با پیچیدگی درجه دوم(O ("n" 2 در مقیاس شکست می‌یابند، و حتی الگوریتم‌های خطی باعث می‌شود که مشکلات به صورت مکرر فراخوانی شوند و به‌طور معمول با احتمالات ثابت یا لگاریتمی جایگزین شوند. فراتر از نظم نسبیت رشد، عوامل پایدار اهمیت دارد: الگوریتم کند تراز الگوریتم سریعتر یا کوچکتر (به عنوان ساده‌تر)، فقط زمانی هر دو با ورودی کوچک مواجه می‌شوند، که در
زمانی هر دو با ورودی کوچک مواجه می‌شوند، که در واقعیت اتفاق بیفتد. اغلب الگوریتم ترکیبی بهترین عملکرد را به وجود می‌آورد، به این دلیل که این تغییرات با اندازه تغییر می‌کند. یک روش کلی برای بهبود عملکرد، اجتناب از کار است. یک مثال خوب استفاده از یک مسیر سریع برای موارد معمول است، بهبود عملکرد با اجتناب از کار غیر ضروری. به عنوان مثال، با استفاده از یک الگوریتم طرح بندی متن ساده برای متن لاتین، تنها تغییر در الگوریتم طرح پیچیده برای اسکریپت‌های پیچیده مانند دیواناگری. یکی دیگر از روش‌های مهم ذخیره‌سازی، به
دیواناگری. یکی دیگر از روش‌های مهم ذخیره‌سازی، به ویژه مموایز کردن، که از محاسبات بیش از حد جلوگیری می‌کند. با توجه به اهمیت ذخیره‌سازی، اغلب سطوح ذخیره‌سازی در یک سیستم وجود دارد که می‌تواند مشکلاتی را از استفاده از حافظه ایجاد کند و مسائل مربوط به صحت از حافظه‌های غیرمجاز. فراتر از الگوریتم‌ها و اجرای آن‌ها در انتزاعی و ماشین آلات بتن و کد منبع سطح انتخاب می‌تواند تفاوت قابل توجهی است. برای مثال در اوایل C کامپایلر codice_1 شد و آهسته‌تر از codice_2 به صورت بی قید و شرط حلقه زیرا codice_3 ارزیابی ۱ و سپس
بی قید و شرط حلقه زیرا codice_3 ارزیابی ۱ و سپس یک پرش شرطی که تست شده اگر درست شد در حالی که codice_4 تا به حال بی قید و شرط پرش. برخی از بهینه‌سازی (مثل این یکی) امروزه می‌توان با بهینه‌سازی کامپایلر. این بستگی به منبع زبان دستگاه مورد نظر زبان و کامپایلر و می‌تواند دشوار به درک یا پیش‌بینی و تغییرات در طول زمان است و این کلید جایی که درک درستی از کامپایلر و کد دستگاه می‌تواند عملکرد را بهبود بخشد. حلقه-ناوردا کد حرکت و بازگشت ارزش بهینه‌سازی نمونه‌هایی از بهینه‌سازی است که کاهش نیاز به کمکی متغیر و حتی
بهینه‌سازی است که کاهش نیاز به کمکی متغیر و حتی می‌تواند منجر به اجرای سریع تر و با اجتناب از دور-در مورد بهینه‌سازی. بین منبع و سطح کامپایل، دستورالعمل‌ها و فلگ‌های ساخت را می‌توان برای تنظیم گزینه‌های عملکرد در کد منبع و کامپایلر به ترتیب استفاده کرد، از جمله استفاده از پیش پردازنده تعریف می‌شود که برای مثال برای غیرفعال کردن ویژگی‌های نرم‌افزار غیر ضروری، بهینه‌سازی برای مدل‌های خاص پردازنده یا قابلیت‌های سخت‌افزاری، یا پیش‌بینی شاخه، سیستم‌های توزیع نرم‌افزار مبتنی بر منبع مانند پورت‌های BSD و انتقال
مبتنی بر منبع مانند پورت‌های BSD و انتقال جنتو‌ها و این صورتی ازشکل بهینه‌سازی است. استفاده از یک کامپایلر بهینه‌سازی شده مستلزم اطمینان از اینکه برنامه اجرایی حداقل به همان اندازه که کامپایلر می‌تواند پیش‌بینی کند بهینه‌سازی شده باشد. در پایین‌ترین سطح، نوشتن کد با استفاده از یک زبان مونتاژ، طراحی شده برای یک پلتفرم سخت‌افزاری خاص می‌تواند کارآمدترین و کمترین کد را تولید کند، در صورتی که برنامه‌نویس از رکورد کامل دستورالعملهای ماشین استفاده کند. به همین دلیل، بسیاری از سیستم عامل‌های مورد استفاده در
دلیل، بسیاری از سیستم عامل‌های مورد استفاده در سیستم‌های جاسازی شده به‌طور سنتی در کد اسمبلر نوشته شده‌اند. برنامه‌ها (به غیر از برنامه‌های بسیار کوچک) به ندرت از زمان شروع و پایان در مونتاژ به علت زمان و هزینه درگیر می‌شوند. اکثر آن‌ها از یک زبان سطح بالا به مونتاژ و دست بهینه شده از آنجا جمع شده‌اند. هنگامی که بازده قطعات مهم‌تر از اندازه هستند، ممکن است در یک زبان سطح بالا نوشته شوند. با کامپایلرهای پیشرفته تر بهینه‌سازیو پیچیدگی CPUهای اخیر، بیشتر است که کد کارآمدتری را از آنچه که کامپایلر تولید