<bgdev />free

Вход Регистрация

Защо така ?
1

0 1 2
#21637 (ツ) ФейкПрофил
Създадено на 13.12.2020, видяно: 1552 пъти.

Между другото същия ефект съм го виждал и при джава :0 така че не е rust специфично. Даже не е LLVM специфично.

#21638 (ツ) |
Последно редактирано на 13.12.2020 от |, видяно: 1547 пъти.
ФейкПрофил

Между другото същия ефект съм го виждал и при джава :0 така че не е rust специфично. Даже не е LLVM специфично.

Четириелементен масив и махане на —-1 решава всички проблеми.

#21652 (ツ) code2
Създадено на 14.12.2020, видяно: 1520 пъти.
Дон Реба
saruman

Стига ве,и само заради branch prediction-а ли да прави такива разлики,забележи че долу ползва даже <= оператор,ако ползва само < още би трябвало да падне времето

да, само заради него е. обаче и на правец 16 дето няма конвеери мисля че "аритметичния" вариант ще е по-бърз, но няма да е с толкова много. ифа дори на платформа без конвеери монвеери е няколко операции и замяната му с аритметична операция (индексиране) още от фортранските времена си е била далавера. компилаторите от много отдавна като компилират switch гледат дали клоновете са последователни числа, и ако да компилират аритметично, без ифове.

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

#21682 (ツ) |
Създадено на 14.12.2020, видяно: 1494 пъти.
code2

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

Сигурен ли си, че имаш идея за какво говориш? :)

#21688 (ツ) janbird
Създадено на 14.12.2020, видяно: 1480 пъти.
|
code2

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

Сигурен ли си, че имаш идея за какво говориш? :)

Общо взето е прав. Навярно най голямо значени за "разпепеляване" на изпълнението ще има премахването на "prev".

#21689 (ツ) |
Създадено на 14.12.2020, видяно: 1476 пъти.
janbird
|
code2

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

Сигурен ли си, че имаш идея за какво говориш? :)

Общо взето е прав. Навярно най голямо значени за "разпепеляване" на изпълнението ще има премахването на "prev".

За кое е прав, че има "две интегрирани нишки"? :)

#21690 (ツ) janbird
Създадено на 14.12.2020, видяно: 1469 пъти.

Нека не се хващаме за грешки в израза или терминологията. Идеята е ясна. По интересно е как да го разпишем така че да помегнем на компилатора да го "разпъне".

#21691 (ツ) |
Създадено на 14.12.2020, видяно: 1464 пъти.
janbird

Нека не се хващаме за грешки в израза или терминологията. Идеята е ясна. По интересно е как да го разпишем така че да помегнем на компилатора да го "разпъне".

Според мен много малко неща са по-малоумни от това да си променяш кода, че компилатора да го разбере по-добре.

#21692 (ツ) janbird
Създадено на 14.12.2020, видяно: 1460 пъти.
|

Според мен много малко неща са по-малоумни от това да си променяш кода, че компилатора да го разбере по-добре.

Любопитно, какви са другите по-малоуни неща. Сподели.

#21693 (ツ) |
Създадено на 14.12.2020, видяно: 1455 пъти.
janbird
|

Според мен много малко неща са по-малоумни от това да си променяш кода, че компилатора да го разбере по-добре.

Любопитно, какви са другите по-малоуни неща. Сподели.

Ами например да "оптимизираш" кода без да има значение производителността му.

#21696 (ツ) Courvoisier
Създадено на 14.12.2020, видяно: 1443 пъти.
|
janbird
|

Според мен много малко неща са по-малоумни от това да си променяш кода, че компилатора да го разбере по-добре.

Любопитно, какви са другите по-малоуни неща. Сподели.

Ами например да "оптимизираш" кода без да има значение производителността му.

that's the essence of being geek and you've just killed it

#21697 (ツ) janbird
Създадено на 14.12.2020, видяно: 1443 пъти.

Щом относно даден код може да използва изразът "нужда от оптимизиране" то не означава ли това че наистина има нужда от такава?

#21698 (ツ) Courvoisier
Последно редактирано на 14.12.2020 от Courvoisier, видяно: 1438 пъти.

По принцип от бизнез гледна точка и ако искаш да станеш хай левел менажер вероятно наистина няма време за такива глупости, но ако те кефи да програмираш, винаги искаш да го направиш по- добре и по- добре, което пък в някакъв процент води до обратното, зависи какви са ти приоритетите. Донякъде има право, но това е същината на гийкщината.

#21699 (ツ) janbird
Създадено на 14.12.2020, видяно: 1431 пъти.
Courvoisier

По принцип от бизнез гледна точка и ако искаш да станеш хай левел менажер вероятно наистина няма време за такива глупости, но ако те кефи да програмираш, винаги искаш да го направиш по- добре и по- добре, което пък в някакъв процент води до обратното, зависи какви са ти приоритетите. Донякъде има право, но това е същината на гийкщината.

Мда точно от "бизнес" гледна точка се говори за оптимизиране само ако наистина има нужда от такава за "бизнеса".rofl

#21700 (ツ) |
Създадено на 14.12.2020, видяно: 1416 пъти.
janbird

Щом относно даден код може да използва изразът "нужда от оптимизиране" то не означава ли това че наистина има нужда от такава?

Не.

#21701 (ツ) |
Създадено на 14.12.2020, видяно: 1408 пъти.
Courvoisier

По принцип от бизнез гледна точка и ако искаш да станеш хай левел менажер вероятно наистина няма време за такива глупости, но ако те кефи да програмираш, винаги искаш да го направиш по- добре и по- добре, което пък в някакъв процент води до обратното, зависи какви са ти приоритетите. Донякъде има право, но това е същината на гийкщината.

Дори и да те "кефи" да програмираш, оптимизирането просто заради оптимизирането е малоумщина. Кодът се пише от хора за хора, а не от хора за компютри. Ако се пишеше за компютри щеше да изглежда съвсем различно. И, не, нямаше да е асемблер. Дори той се пише за хора. Доста странни хора, но все пак хора.

#21702 (ツ) janbird
Създадено на 14.12.2020, видяно: 1402 пъти.
|

Дори и да те "кефи" да програмираш, оптимизирането просто заради оптимизирането е малоумщина. Кодът се пише от хора за хора, а не от хора за компютри. ...

Това е твое мнение. На мен ми помага за еякулация, а това според мен е...

#21703 (ツ) code2
Създадено на 14.12.2020, видяно: 1400 пъти.
|
code2

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

Сигурен ли си, че имаш идея за какво говориш? :)

За сигурен съм сигурен че знам за какво говоря, но за изказът наистина съм забравил терминологиите. Работата е там, че процесорите са минали през няколко етапа на еволюция. Така например конвейерната обработка е една от технологиите, която мисля че е въведена с 386 процесорите. При пентиум процесорите нещата са с една принципна стъпка по-напред като някои операции се изпълняват паралелно, ако е възможно. Примерно ако имаме a=10 следвано от b=20 то вероятно се изпълняват едновременно. Тук не говорим за специални нови инструкции! Естествено говорим за assembler (и може би трябваше да представя нещата в такъв формат примерно "mov eax,#10").

По отношение на оптимизацията за да може да се ползва въпросното ускорение - това си е задача на компилатора, ако не пишеш на чист асемблер. Т. е. не променяш кода, а компилаторът ти го балансира сам. Примерно ако имаш a=10; b+=a; c=20; d+=c - то се изпълняват едновременно само тези команди: "b+=a; c=20;". Но ако разпределиш нещата така: a=10; c=20; b+=a; d+=c (което води до същия резултат), тогава първите две и следващите две команди си се изпълняват едновременно.

#21705 (ツ) |
Създадено на 14.12.2020, видяно: 1396 пъти.
code2
|
code2

Освен въпросния предикшън трябва да се отбележи, че още от времето на пентиумите изпълнението се разпаралелява в две интегрирани нишки където може. Точно if-овече е мястото, където не може да се разделя изпълнението на два вградени потока!

Сигурен ли си, че имаш идея за какво говориш? :)

За сигурен съм сигурен че знам за какво говоря, но за изказът наистина съм забравил терминологиите. Работата е там, че процесорите са минали през няколко етапа на еволюция. Така например конвейерната обработка е една от технологиите, която мисля че е въведена с 386 процесорите. При пентиум процесорите нещата са с една принципна стъпка по-напред като някои операции се изпълняват паралелно, ако е възможно. Примерно ако имаме a=10 следвано от b=20 то вероятно се изпълняват едновременно. Тук не говорим за специални нови инструкции! Естествено говорим за assembler (и може би трябваше да представя нещата в такъв формат примерно "mov eax,#10").

По отношение на оптимизацията за да може да се ползва въпросното ускорение - това си е задача на компилатора, ако не пишеш на чист асемблер. Т. е. не променяш кода, а компилаторът ти го балансира сам. Примерно ако имаш a=10; b+=a; c=20; d+=c - то се изпълняват едновременно само тези команди: "b+=a; c=20;". Но ако разпределиш нещата така: a=10; c=20; b+=a; d+=c (което води до същия резултат), тогава първите две и следващите две команди си се изпълняват едновременно.

Това, което описваш IBM го въвеждат още през 60-те с алгоритъма на Томасуло. И няма нищо общо с каквито и да е нишки.

#21706 (ツ) |
Създадено на 14.12.2020, видяно: 1395 пъти.
janbird
|

Дори и да те "кефи" да програмираш, оптимизирането просто заради оптимизирането е малоумщина. Кодът се пише от хора за хора, а не от хора за компютри. ...

Това е твое мнение. На мен ми помага за еякулация, а това според мен е...

Говорехме за програмиране, а не за сексуални девиации.

0 1 2

Защо така ?
1

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE