-
تعداد ارسال ها
8 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
3
آخرین بار برد سروش ربیعی در 3 دی 1397
سروش ربیعی یکی از رکورد داران بیشترین تعداد پسند مطالب است !
اعتبار در سایت
16 بسیار خوبدرباره سروش ربیعی
- تاریخ تولد تعیین نشده
اطلاعات شبکهای
- شناسه گیتهاب
آخرین بازدید کنندگان نمایه
بلوک آخرین بازدید کننده ها غیر فعال شده است و به دیگر کاربران نشان داده نمیشود.
-
Alireza Mazarei شروع به دنبال کردن سروش ربیعی کرد
-
داخل یک ترد غیر از ترد اصلی برنامه تمام فایلها رو rename کنید. زیاد کردن تعداد تردها برای عملیات IO روی فایل خصوصاً در این مورد هیچ کمکی نمیکنه که هیچ، به احتمال زیاد سرعت رو هم پایین میاره.
-
سروش ربیعی پاسخی برای کامبیز اسدزاده در یک موضوع ارسال کرد در <span class="ipsBadge ipsBadge_pill" style="background-color: #2cdb89; color: #000000;" >کتابخانه کیوت (Qt)</span>
اگر این بار مشکل خاصی نتراشند انشاءالله در نسخهٔ ۵٬۱۳ تقویم فارسی خواهیم داشت. تغییرات مربوطه تکمیل شدهاند و از طریق آدرس زیر در دسترس هستند: Gerrit Code Review -
stl
سروش ربیعی پاسخی برای قاسم رمضانی منش در یک سوال ارسال کرد در سوالات عامیانه در رابطه با ++C مدرن
هدر فایل کامپایل نمیشه. بخشی از هدر که در کد وارد شده کامپایل میشه. داخل ممکنه تعریفهایی وجود داشته باشه. مثلا: header.hpp: static const SomeComplexStruct; در این صورت خوب مسلماً فایلی که این هدر رو اینکلود کرده باشه حافظهٔ بزرگتری اشغال میکنه (هم توی ایمیج هم توی رانتایم). ولی در حالت کلی همهٔ چیزهایی که توی هدر هستند کامپایل نمیشن. مثلا اگر هدرها تماماً از اعلانهای کلاسها و توابع تشکیل شده باشند چیزی کامپایل نمیشه. (معمولاً داخل هدر فقط اعلان قرار داده میشه) مثال: // header.hpp struct bar { int x; int y; double z; }; class foo { public: bar x; bar y; bar z; }; #include <iostream> #include "header.hpp" // does not matter int main() { std::cout << "Hello World!\n"; return 0; } خروجی هر دو حالت: .file "main.cpp" .text .section .rodata .type _ZStL19piecewise_construct, @object .size _ZStL19piecewise_construct, 1 _ZStL19piecewise_construct: .zero 1 .local _ZStL8__ioinit .comm _ZStL8__ioinit,1,1 .LC0: .string "Hello World!\n" .text .globl main .type main, @function main: .LFB1493: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 leaq .LC0(%rip), %rsi leaq _ZSt4cout(%rip), %rdi call _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@PLT movl $0, %eax popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1493: .size main, .-main .type _Z41__static_initialization_and_destruction_0ii, @function _Z41__static_initialization_and_destruction_0ii: .LFB1977: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 subq $16, %rsp movl %edi, -4(%rbp) movl %esi, -8(%rbp) cmpl $1, -4(%rbp) jne .L5 cmpl $65535, -8(%rbp) jne .L5 leaq _ZStL8__ioinit(%rip), %rdi call _ZNSt8ios_base4InitC1Ev@PLT leaq __dso_handle(%rip), %rdx leaq _ZStL8__ioinit(%rip), %rsi movq _ZNSt8ios_base4InitD1Ev@GOTPCREL(%rip), %rax movq %rax, %rdi call __cxa_atexit@PLT .L5: nop leave .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1977: .size _Z41__static_initialization_and_destruction_0ii, .-_Z41__static_initialization_and_destruction_0ii .type _GLOBAL__sub_I_main, @function _GLOBAL__sub_I_main: .LFB1978: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl $65535, %esi movl $1, %edi call _Z41__static_initialization_and_destruction_0ii popq %rbp .cfi_def_cfa 7, 8 ret .cfi_endproc .LFE1978: .size _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main .section .init_array,"aw" .align 8 .quad _GLOBAL__sub_I_main .hidden __dso_handle .ident "GCC: (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0" .section .note.GNU-stack,"",@progbits- 4 پاسخ
-
- سیپلاسپلاس
- cpp
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
stl
سروش ربیعی پاسخی برای قاسم رمضانی منش در یک سوال ارسال کرد در سوالات عامیانه در رابطه با ++C مدرن
اضافه کردن فایلهای هدر هیچ تأثیری در حجم برنامهٔ نهایی نداره. فقط توابعی که کامپایل شدن (کد باینری برای اونها تولید شده) در باینری نهایی جا میگیرن.- 4 پاسخ
-
- سیپلاسپلاس
- cpp
-
(و 3 مورد دیگر)
برچسب زده شده با :
-
pallarel
سروش ربیعی پاسخی برای قاسم رمضانی منش در یک سوال ارسال کرد در سوالات عامیانه در رابطه با ++C مدرن
نه هیچ برنامهای بهطور خودکار در چند ترد اجرا نمیشه. دلیل این که تعداد زیادی هسته رو درگیر میبینید سرعت بالای context switch هست. برای این که ببینید هر پردازه چند ترد ایجاد کرده از دستور زیر استفاده کنید: ps huH p با خوندن اطلاعات procfs هم میشه: cat /proc//status | grep Threads -
راهی نداره. باید با تحلیل دادههای رسیده از پورت استنتاج کنید که جواب کدام دستور ارسال شده بوده. یک راه دیگه اینه که از پروتکلهای پیچیدهتر مثل McBSP یا Multichannel Buffered Serial Port استفاده کنید که البته کیوت ساپورت نمیکنه
-
توی تنظیمات نباید ست بشه که استاندارد کامپایل C++11 هست؟ یعنی پیشفرضش C++98 هست یا صرفاً پیادهسازی ماکرو باگ داره؟
-
سروش ربیعی شروع به دنبال کردن بهینه سازی سرعت اجرای برنامه های زبان ++C کرد
-
استفاده از توزیعهای آماری برای تولید اعداد تصادفی سرعت رو پایین میاره. چون مشخهٔ آماری توزیع (مثلاً توی مورد شما توزیع یکسان) باید در هنگام تولید اعداد رعایت بشه. به همین خاطر موقع تولید عدد ممکنه سه یا چهار بار عدد تصادفی تولید بشه. این مسأله موقع استفاده از توزیعهای آماری پیچیدهتر مثل توزیع نرمال شدیدتر هم میشه. تولید عدد تصادفی با توزیع نرمال در سیپلاسپلاس خیلی کنده. در مقابل اگر مشخصهٔ آماری براتون مهم نیست میتونید از توابع سادهٔ rand استفاده کنید که از سختافزار هم برای تولید عدد تصادفی کمک میگیرند: cat /dev/urandom | hexdump سرعت تولید عدد تصادفی به این روش خیلی بالاست اما آشفتگی لازم برای رمزنگاری رو نداره. اگه کاربرد خیلی جدی هست باید از randomبهجاش استفاده کنید که کندتره. توابع استاندارد هم از همینها استفاده میکنند.
- 10 پاسخ
-
- بهینهسازی
- سرعت
-
(و 2 مورد دیگر)
برچسب زده شده با :