- 1
- 2
- 3
- 4
- 5
- 6
- 7
#include <iostream>
using namespace std;
int main() {
for(int i = 0; i<((cout<<'c'), 5); ((cout<<'i'), ++i)) cout<<"b";
cout<<endl;
return 0;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+21
#include <iostream>
using namespace std;
int main() {
for(int i = 0; i<((cout<<'c'), 5); ((cout<<'i'), ++i)) cout<<"b";
cout<<endl;
return 0;
}
38 летний программист справа написал зачем-то такой код и сказал, что проверяет себя.
http://ideone.com/zg6SFB
LispGovno 02.07.2013 09:47 # 0
bormand 02.07.2013 09:59 # +3
А проверял он порядок вызовов фрагментов фора (условие-тело-инкремент)?
inkanus-gray 02.07.2013 15:21 # −2
http://ideone.com/sEL1h8
superhackkiller1997 02.07.2013 17:50 # −11
Наглядный пример - паскальпитух сделал 25-ю строчками то, что на сишке делается за 1, с функциями как у тебя - за 5-6.
inkanus-gray 03.07.2013 00:48 # +4
superhackkiller1997 03.07.2013 13:24 # −2
Так же, добавить функции - это 2 строки(одна) на функции - их у тебя 3 - посчитай.
inkanus-gray 04.07.2013 09:19 # +3
Паскалевский фор начальное и конечное значение счётчика вычисляет только один раз и сохраняет в регистрах. Для реализации такого же функционала в сишечке придётся заводить временные переменные и копировать начальное и конечное значения в них. Ага, паскалевское придётся переписывать в Чтобы не было потери перфоманса, придётся питушиному компилятору указывать директивы, чтобы он разместил sv и ev в регистрах. Я уже не говорю, что код будет выглядеть, как говно.
roman-kashitsyn 04.07.2013 11:59 # +4
Преобразование поциента for -> do крайне доставило, ибо сделало цикл некорректным, т.к. условие не проверяется перед входом в цикл.
bormand 04.07.2013 12:05 # +4
Пустые списки и пустые строки в функции передают только анскильные питушки. Царь проверяет инварианты заранее, при вводе, а затем не нарушает их. Поэтому в его случае такое преобразование правомочно.
roman-kashitsyn 04.07.2013 12:08 # 0
bormand 04.07.2013 12:21 # 0
А вдруг он написал валидаторы для типичных случаев, и для проверки ввода достаточно поюзать уже готовый валидатор?
roman-kashitsyn 04.07.2013 12:22 # +2
inkanus-gray 04.07.2013 12:25 # +1
superhackkiller1997 04.07.2013 14:45 # −2
Код сам следит за выравниванием, ибо если бы люди писали как ты, животное, - ты бы даже киношку не осилил поглядеть. Но ты, анскильный питух, лучше всех всё знаешь и несёшь такую херню. Это просто 5фейспалмов в секунду.
superhackkiller1997 04.07.2013 14:41 # −2
Ты, тупое животное, ты нихрена не знаешь о перфомансе. Ты не хрена не знаешь о логике - ты тупая питушара. Кукарекаешь о не корректности, но питух не осилит написать даже мемкопи нормально - но он кукарекает.
Питух, а теперь объясни мне, ущербанище упоротое, зачем мне вызывать мемкопи для ПУСТОТЫ? А, ты реально слишком туп чтобы это понять, либо притворяешься? Мб мне там тебе надо выравнивание сделать, а то авось питух типат ебя передаст туда не выравненное.
Или ты, питух анскильный, думаешь, что мне проверять - авось и конец не выровнен, авось блин там 123байте сегфолт? Не смиши мои тапки и не неси херню, животное.
inkanus-gray 04.07.2013 14:50 # 0
superhackkiller1997 04.07.2013 15:10 # −3
Какой нахрен переменного размера? Ты что несёшь? Это ссешное копирование - там 16байтные типы.
Обрабатываемые блоки всегда минимум 16байт и всегда кратны 16байтам. Никакие проверки делать не надо, глупая лалка.
Возьми картиночку/кинцо - посчитай сколько там пикселей и раздели на 16. Подумай, почему про-пацаны делают сетку по степеням двойки и т.п.
Почему, когда у тебя есть выровненый массив в 183748734 байт - пацаны срезают первы 4бита и скамливают это ссешке, а потом уже обрезанные 4бита - хреначат как угодно.
Ты не думал, что ты, как и все тут - тотальные анскильности, которые нихрена не понимают как надо писать код?
TarasB 04.07.2013 15:12 # 0
superhackkiller1997 04.07.2013 15:23 # −4
Хотя да, тыж анскильное животное - куда тебе думать и знать как работает мемкопи. И почему она проверяет, почему убивает в говно кеш, почему тормазит и прочее - ты животное, и твой удел лишь кукарекать.
Cpp 04.07.2013 17:42 # +1
superhackkiller1997 04.07.2013 18:25 # −4
Я называю вас питухами только потому, что вы: а) нихрена не понимание, не умеете и несёте херню. И это даже не самое страшное - вы нихрена не делаете выводов - вы думаете, что слиться и попитросянить - схавитить плюсов и свести разговор к ха-ха делает вам чести - но только по этому вы питухи. б) Вы слишком анскильны и не доросли ещё до уровня своей наглости.
Cpp 04.07.2013 18:29 # −2
Cpp 04.07.2013 18:30 # −1
anonimb84a2f6fd141 04.07.2013 18:32 # −2
eth0 04.07.2013 19:35 # +2
bormand 04.07.2013 20:47 # 0
Stertor 04.07.2013 23:05 # −3
bormand 04.07.2013 23:08 # −2
Что, Stertor?
Stertor 04.07.2013 23:09 # −2
:-D
Stertor 04.07.2013 19:39 # −2
anonimb84a2f6fd141 04.07.2013 20:53 # −1
Надоели люди, которые "пошел на хуй" называют троллингом. Он не троллит, он абсолютно искренне хочет, чтобы ты пошел нахуй.
Stertor 04.07.2013 22:39 # 0
anonimb84a2f6fd141 , а не пошел бы ты на хуй?
Cpp 04.07.2013 17:34 # 0
Stertor 04.07.2013 23:14 # +3
"Мне всегда немного грустно, когда красноречиво, изящно и тонко оскорбляешь человека, а он слишком глуп, чтобы это понять ..." Сделайте выводы для себя, или по крайней мере перестаньте "кормить троллей" - поддаваться на провокации.
roman-kashitsyn 04.07.2013 12:04 # +2
> for(i = sv; i <= ev; i++)
Ну и в С99 я бы написал так
superhackkiller1997 04.07.2013 14:34 # −4
Ты чего абкурился, анскильность тотальная? Какие директивны, какие регистры - ты не путай Си-конпеляторы(нормальные) и твоё паскаль говно.
>int sv = StartValue(...), ev = EndValue(...);
Ой питух, ой анскиллед. i = StartValue(...) - работает как в твоём паскале. ev ты тоже можешь заменить на EndValue(...), если твоя EndValue() не говно.
Зачем ты несёшь такую херню? Ты нихрена не знаешь про Си конпеляторы, но кукарекаешь.
inkanus-gray 04.07.2013 14:45 # 0
Если hbound() имеет побочный эффект (например, читает из внешнего источника), то результаты выполнения будут разными.
superhackkiller1997 04.07.2013 15:19 # −3
Тыж раньше кукарекал, что:
>придётся переписывать в
>int sv = StartValue(...), ev = EndValue(...); i = sv;
Почему ты, питух, сразу не написал i = StartValue(...);
>есть разница: в первом случае hbound() вызовется один раз, а во втором будет вызываться на каждой итерации цикла. Если ты не понимаешь разницы, то ты питух анскильный.
Животное, если ты осилишь атрибуты у функций, если ты осилишь мозг - то ты питух не будешь нести херню.
>Если hbound() имеет побочный эффект (например, читает из внешнего источника), то результаты выполнения будут разными.
Т.е. твоя hbound() говно? Ну и, куда она читает? Зачем она читает? Почему её надо тут юзать?
Т.е. это не работает для 10% функций, у которых есть побочный эффект, а для остальных работает - ещё раз питушок прокукарекался.
Расскажу тебе одну вещь, котору ты пока, в силу своей малоразвитости, понять не можешь - функции с побочным эффектом в сишке никто не пишет так, как ты это написал. Ибо она бессмысленна.
inkanus-gray 04.07.2013 15:22 # 0
Признаю, здесь я поторопился.
> функции с побочным эффектом в сишке никто не пишет так, как ты это написал
А как пишут? Функция может брать данные откуда угодно и они могут меняться между вызовами. Я уже не говорю о том, что вызов функции на каждой итерации — это потеря производительности (даже если функцию заинлайнить).
superhackkiller1997 04.07.2013 15:44 # −1
Ты нихрена не знаешь о производительности - не кукарекай.
Понимаешь в чём дело - в нормальном коде ничто не может само меняться. Что будут менять твои побочные эффекты? Это сиколы? Хотя куда вам. Либо какие-нибудь глобальные переменны? Тогда в чём смысл?
Ты заюзал f() - которое вернула тебе, допустим, длинну строки - по твоей же логике она имеет побочный эффект и меня эту же строку, либо эту строку меняет что-то из вне. Тогда твой цикл не корректен.
Если возвращаемое значение будет всегда константное на время выполнения твоего цикла - то хреначить в функцию побочные эффекты глупо.
Допустим у тебя есть независимо пополняемый пулл, который ты обрабатываешь и по твоей логике Сишный фор работает не правильно - юзай вычислялку длинны так:
for(char * p = str; p != strlen_p(str); ++p); - будет работать так же, как твой паскаль.
TarasB 04.07.2013 16:00 # +3
Ты накостылил какое-то говно, надеясь на разумность компилятора, это вместо того, чтобы закешировать значение самому, вот жеж ты анскилдед.
defecate-plusplus 04.07.2013 16:04 # 0
superhackkiller1997 04.07.2013 16:18 # −2
Какую разумность - это не разумность, путих, - это семантика атрибута.
Хотя я понимаю, анскильному животному, который кроме делфей в жизни нихрена не видел - сложно понять как работает си-конпелятор.
Ты питух несёшь тотальную херню, хотя тыж нормального кода в жизни не писал - откуда тебе знать зачем пацаны придумали атрибуты. От жешь ведь.
inkanus-gray 04.07.2013 16:35 # 0
Твой код работает так же, как обычный while. А аналог паскалевского кода будет
superhackkiller1997 04.07.2013 17:07 # −2
Не так же, простоты ты слишком туп, чтобы это понять.
Был бы ты не тупым животным, и понял бы, что c99 игнорит атрибуты, которых нет в с99. И осилил бы -std=gnu11 - ты был бы не питухом, а так - ты бездарное животное, которые нихрена не понимает и кукарекает.
defecate-plusplus 04.07.2013 15:24 # +1
superhackkiller1997 04.07.2013 15:46 # −1
defecate-plusplus 04.07.2013 15:52 # +1
но ты все же бот
настоящий суп-и-харчиллер первым же своим вбросом демонстрировал бинд в сишке
superhackkiller1997 04.07.2013 16:14 # −1
Мой бинд имел смысл, был крут и как-то соотносился с контекстом треда, а ты же питух наваял говное, смысла в котором нет.
defecate-plusplus 04.07.2013 16:16 # +5
42 раза написать тебе, что ты питушок
это самые полезные 5 строк кода, которые я сегодня написал!
superhackkiller1997 04.07.2013 16:22 # −3
Она напишет больше 42раз, но тыж питух только кукарекать можешь.
bormand 04.07.2013 16:49 # +2
Может больше, может меньше, зависит от lbound().
guest 02.07.2013 11:23 # −1
bormand 02.07.2013 11:28 # +4
guest 02.07.2013 11:37 # +1
Elvenfighter 02.07.2013 18:30 # 0
// Но результатом выполнения всего выражения является результат выполнения последнего подвыражения :)
bormand 02.07.2013 19:40 # 0
superhackkiller1997 02.07.2013 11:32 # −8
Stertor 02.07.2013 12:40 # −4
Cpp 02.07.2013 17:06 # +6
Stertor 02.07.2013 17:08 # −6
Cpp 02.07.2013 17:11 # +4
superhackkiller1997 02.07.2013 17:55 # −5
Запомни раз и навсегда - пока я тут царь, и лучше меня тут никто и ничто не напишет.
Cpp 02.07.2013 18:12 # +2
Stertor 02.07.2013 18:13 # −6
eth0 02.07.2013 19:18 # +3
guest 02.07.2013 20:25 # +1
bormand 02.07.2013 20:27 # +7
Lure Of Chaos 02.07.2013 22:07 # +2
Stertor 02.07.2013 18:06 # −7
guest 02.07.2013 17:13 # −2
superhackkiller1997 02.07.2013 17:45 # −6
Простой код - это минималистичный, конкретный, красивый код. Код питушков, типа тебя - это избыточное говно, основанное на ущербанских абстракциях. Питушки типа тебя ваяют избыточное говно, делая 200строчками то, что пацан делает 20-ю - длинна строк одинаковая.
Вот как ты, питух, будешь писать цикл на 10итераций? for(uint64_t i = 0; i != 10; ++i) {}; - в лучшем случае, обычно питушня типа тебя даже ++i не осиливает написать, а уж !=(<) для вас вообще нереально. Питухи всегда юзают <=. uint64_t i = 10; do {} while(--i);
Как питух, типа тебя, захреначит обход "массивов" - как питух, через форы, массивы со скобочками, счётчиками. А уж если массив 2д, то питушки ваяют такое говно, что просто пичаль.
Вот как питух, типа тебя, напишет сложение одногого массива с другим - правильно, как питух, а пацан напишет как-то так:
Правда пацаны даже N не юзают, а юзает end, как вас, питухов, пытается приучить стл, но вы же тупые питухи. До сих пор у питухов везде счётчики на циклах, даже в стл.
Ты тотальная, жалкая анскильность, которая оправдываёт свою криволапость и маломозглость подменой понятий.
Сложные конструкции - они сложны синтаксически, а логически они просты - вы же питухи пытаетесь юзать примитивные синтаксические конструкции, которые абсалютно не логичны, но анскильным питухам класть на логику.
Cpp 02.07.2013 18:08 # 0
superhackkiller1997 02.07.2013 18:34 # −6
Реально? Нука, давай конкретные примеры. Это анрольная sseшка, которая запидалит тебя в хлам, даже если твой конпелятор соизволит засимдить твоё выхлоп.
В каком месте он не кроссплатформенный? Замени uint64_t на fast тип, если пишешь для 32битного говна. Для маздайки никакой вменяемый человек не пишет, ибо маздайка и перфоманс, предсказуемость, масштабируемость не совместимые понятия.
Нормальный код не пишут для 32битного говна - максимум какие-то либы для прикладухи.
Ты обыкновенный питух, который слился на ровном метсе и начал кукарекать "преждевременной оптимизации", хотя эта с оптимизацией занимает строчек и символов меньше, чем твой говнокод. "не кроссплатформенный" - это в чём выражается? Тут ничего "не кроссплатформенного" нет, если ты имеешь ввиду софтварную платформу, если ты про аппаратную, то удивлю тебя, питух. Быстрые вещи пишут отдельно под каждый таргет.
>Вот ты тут всех критикуешь, какие все тупые
Объективно - ты туп, твой код говно.
>бредовые примеры
А ну да, бредовый пример - обход массивов. Самая частая операция - для питуха бредовый пример.
superhackkiller1997 02.07.2013 18:34 # −5
Кто? Я напомню тебе - я царь. Как ты понимаешь моего скилла разговора и аргументации хватит на паралельное сливание сотен лалок, типа тебя. Такие питушки как ты психуют через 5минут разговора со мной и в страхе убигаю, предпочитая потом со мной даже не встречаться.
>наверняка даже девушки нет
Сказал питух, у которого даже намёка на девушку нет. Как я люблю этих питушков, которые явно сливаются выкладывая все свои проблемы как аргументы.
Питушок, я с 17 лет и до сих пор живу со своей женой.
>вот ты тут и отрываешься.
Зачем мне тут отыгрываться? На ком? Ты думаешь мне интересно с тобой говорить? Я абсалютно клал на дебилушек, типа вас. Я написал своё мнение о коде - ты мог пройти мимо, но ты же сам начал со мной спорить? А я не плюблю, когда анскильные питухи позволяют себе даже в мою сторону смотреть.
Вобщем ответов нет, тотальный слив в питушок стайле. Аргументы на уровне детсада: "тебя никто не любит - ты поэтому меня не любишь".
eth0 02.07.2013 19:19 # +3
U say!
LispGovno 03.07.2013 01:08 # +4
>> Питушок, я с 17 лет и до сих пор живу со своей женой.
Ты сделал мой день. Это ты в следующем году решил завести жену или первый день женат?
LispGovno 03.07.2013 00:56 # −1
Ты так говоришь, как-будто это что-то плохое.
suc-daniil 03.07.2013 10:23 # −2
1024-- 03.07.2013 13:05 # −1
3.14159265 03.07.2013 13:06 # +3
1024-- 03.07.2013 13:11 # +1
bormand 04.07.2013 16:50 # 0
Stertor 04.07.2013 19:41 # +2
inkanus-gray 03.07.2013 00:58 # +1
Да, в Си for(x; y; z){тело} эквивалентно x; while(y){тело; z} Но зачем, ведь for в данном случае и читается хуже, и менее гибкий?
superhackkiller1997 03.07.2013 01:09 # −5
Си позволяет писать всё, а другие языки не позволяют писать ничего.
Пропацаны фор не юзают. x; while(y){тело; z} - так пишут только питухи. Фор в твоём случае читается хуже, а в моём лучше.
Зачем ты мне рассказываешь про бесполезность фора? Ты рассказывай это другим питушкам.
TarasB 03.07.2013 14:03 # 0
superhackkiller1997 02.07.2013 17:45 # −5
Что я разговариваю с заедушным питушком, который даже банальный перебор массива нормально не напишет - твой удел ваять гуйню за еду, вот вояй, но не спорь со мной.
Cpp 02.07.2013 17:57 # −2
guest 02.07.2013 18:04 # −4
Stertor 02.07.2013 18:08 # −6
можно подумать, что скобки не составляют одно целое с кодом. А по качеству кода ценится программист.
cpp, загляни сюда
xyecoc.net
Cpp 02.07.2013 18:09 # +2
Stertor 02.07.2013 18:11 # −6
Stertor 02.07.2013 18:23 # −3
Stertor 02.07.2013 18:24 # −7
Эдвард Сноуден
Stertor 02.07.2013 18:26 # −6
Представители ФСБ
Stertor 02.07.2013 18:28 # −3
(trollface)
Stertor,
не перестанете флудить - получите бан. Последнее китайское!!
Модератор.
Stertor 02.07.2013 18:32 # −3
Аккаунт заблокирован до 04.01.2080
Причина: тролль
superhackkiller1997 02.07.2013 18:42 # −5
1k$? Не смеши мои тапки.
>пока ты сидишь на шее родителей.
Живу сам по себе с 17лет, да и вообще какая тебе разница? Я конкретно описал тебе - почему твйо код говно, а ты начинаешь сливаться на родителей.
>Я все еще очень жду когда же ты покажешь нам хотя бы какой-нибудь из своих проектов (которых наверняка нет).
Я уже показал тут и на лоре достаточно материала для оценки моего уровня - писать изимодное говно за еду мне не интересно. То, что я делаю - в твоём понимании не проекты.
>По твоему стиль написания скобок определяет качество программиста?
Да, только анскильное животное тратит 2лишние строчки без профита. Тыж там говорил - зачем юзать то, что не приносит профита - вот тебе пример твоего узкого и примитивного мышление.
>Скажи это Crytek (которые ставят скобки с новой строки) например, хотя да, они же тоже питухи, куда им до тебя.
Питух - ты видел хоть раз в жизни ядро их движка? Движки состоят из 95% обвеса, которые пишут животные типа тебя, а работают другие 5% - это ядро, которое питуш более-менее норм пацаны, которое вы никогда не видите и судите по обёрткам.
Хотя да, безвольные питухи пишут так, как им сказали. Поэтому приводить изимодное говно как пример - глупо.
guest 02.07.2013 19:06 # +1
superhackkiller1997 02.07.2013 19:13 # −5
1024-- 03.07.2013 13:15 # 0
UncleAli 02.07.2013 22:33 # −1
superhackkiller1997 02.07.2013 22:44 # −1
Lure Of Chaos 02.07.2013 23:12 # +8
LispGovno 03.07.2013 01:18 # +1
Ну зачем ты раскрыл все карты? Я только хотел прослыть провидцем.
Vasiliy 03.07.2013 10:55 # +3
>То, что я в следующем году женюсь и ухожу из дома.
Пиздитите батенька 146%
bormand 03.07.2013 11:04 # +1
HaskellGovno 03.07.2013 11:06 # 0
Vasiliy 03.07.2013 13:28 # 0
eth0 03.07.2013 18:02 # 0
roman-kashitsyn 02.07.2013 22:51 # +1
петлю в простанственно-временном континууме
LispGovno 03.07.2013 01:16 # +4
superhackkiller1997 03.07.2013 01:55 # −1
Тут борманд, который хотябы знает сишку и околосистемщину, являясь обычным питушком, ибо любит красоваться на публике. Его суждения бредовы и тупы.
Больше тут никого, кроме бездарных плюсовых, заедушных питухов нет.
Я не делаю никакие проекты - я реализую нормально те вещи, которые мне интересны. http://www.linux.org.ru/forum/development/9250769/ - кури, я там описывал "как стать прокодером".
Я уже говорил, что я делаю - я пишу идеальные обходы для 4-32мегабайтных 2д массивов, которые обходить надо тысячи раз, причем обходит отдельные части нельзя - только весь целиком. Для того, чтобы слить питухов-математиков. Последние 2недели я убил на сбор инфы о процессорах, ибо для запила идеала - мне нужен подходящий проц. Мой старый штеуд не имеет нужных мне фич. Я решил слинять на амд, но в интернетах нету вменяемых бенчей - благо братуха и лор помогли.
Для справки - бульдозер в одной нити на чтении памяти сливает i7 в 2(1.7) раза в зависимости от прфетча, nt чтения и прочего.
Вот теперь мне надо дожаться когда мне прийдут мои железки, и потом пилить дальше.
И самое смешное знаешь что? Написание даже банального идеального обхода того же массива сольёт у тебя тысячи времени, а питушок это даже вообще не осилит.
Вот теперь посчитай - осилить в иделе сишку. Осилить в идеале ОС. Осилить в идеале конпелятор. Осилить в идеале железо. Осилить в идеале вначале либо плис, либо схематехнику. Запилить идеальный процессор. Слить всех в мире не только софтварно, но и хардварно. Имея опыт в ЧПУ захреначить свой цех фотолитографии, либо сборки из елементов. И слить всех просто в говно.
Это требует для <1% человека лет 10 - посчитай на что ты потратишь время, на это, либо на заедушное накидывания кнопок на формочку.
kipar 03.07.2013 11:50 # +1
1. Cкобки на новой строке 100% признак анскилледа.
А про код - пиши оптимальный код, будешь писать оптимальный код - будет писать проще, а простота основа труЪ кода.
И самое главное пойми, что плюсовик даже близко не сишник. Из 100% «сишников» на лоре, да и в мире 90% плюсовиков, а плюсовик тебя хорошему не научит.
И раз ты не собираешься продавать себя, то пойми одну вещь - никогда не пытайся потакать анскилледу. Думая «а что если дебилушка с кодегайдом головного мозга не поймёт мой if» - ты 95% напишешь гумно.
2. И да, с таким стилем только в гуйню, мылогонятели, либо ещё что-то.
Вменяемые люди привыкли не разбазариваться местом на экране, а так же всем остальным. Если ты клал на код - ты клал на всё, и тебе ничего не светит.
3. Ты хочешь батл?
Прокодер похож на автора, прокодер не программист - а просто школьник, хобби которого играть в программиста.
Это и есть описание "как стать прокодером"?
superhackkiller1997 03.07.2013 13:21 # −3
kipar 03.07.2013 13:50 # 0
superhackkiller1997 03.07.2013 14:08 # −3
Плюсовик - животное. Тратят что-то бессмысленно только питухи, будь-то такты, строки, память и прочее. Писать код, не думая об анскилледах. Там ещё штук 5 основных правил, которые тыпроигнорил.
>А надо, очевидно, писать бесполезные обходы 32-х мегабайтных массивов. Кстати, разве на GPU не будет быстрее?
Бесполезные? Ты глупышка, даже не знаешь, что такое гпу и кукарекаешь. На гпу будут те же проблемы, что и на цпу.
Единственный профит от гпу - это быстрая память. Но есть проблемка со сбросом промежуточных результатов. Поэтому да, можно - но суть в цпушных горематематиках.
kipar 03.07.2013 14:17 # 0
Они там что, между строк?
>Поэтому да, можно - но суть в цпушных горематематиках.
Если на гпу можно, то писать это на цпу - анскильное питушарство, разве нет?
но вот с этим:
>прокодер не программист - а просто школьник, хобби которого играть в программиста.
я согласен, поэтому прокодер с его желанием всех слить написав никому не нужный обход массива - не нужен.
superhackkiller1997 03.07.2013 18:38 # −4
Они там на строках.
>Если на гпу можно, то писать это на цпу - анскильное питушарство, разве нет?
Будет не особо быстрее и нахрен не упало.
>я согласен, поэтому прокодер с его желанием всех слить написав никому не нужный обход массива - не нужен.
Никому не нужный. Глупый питошок.
kipar 03.07.2013 18:43 # +1
Ты что же это, такты не экономишь?
>Никому не нужный. Глупый питошок.
Он хоть многопоточный, этот перебор?
superhackkiller1997 04.07.2013 14:55 # −4
Питух, иди кукарекай в другое место.
>Он хоть многопоточный, этот перебор?
Питушок даже не знает особенности железа - ой жалкая питушня. Иди погугли чтоли, а то прочитал в википедии "многопоточный" и кукарекаешь.
TarasB 04.07.2013 15:13 # +1
superhackkiller1997 04.07.2013 15:56 # −3
На 2-хканальных штеудах профита от юза больше 2-х нитей нет. Профит есть только на 2011 и на амдеговне.
А на плисе - будет ещё быстрее, а закатать в кристал - будет ещё быстрее. Только суть в том, что это не надо, но вы же питушки нихрена не знаете о чем кукарекаете, но кукарекаете.
kipar 04.07.2013 16:39 # +2
superhackkiller1997 04.07.2013 17:01 # −4
Причем тут гпу, питух? Оно не идеально ложится - ты прочитал это в другом комменте? МОлолец, питух, только ты несёшь полную херню.
Это не левый тест, питух анскильный - это nt запись с nta префетчем - самое быстрое, что может быть на на рядовом х86.
Ладно сливалка, ты мне всё ровно не ответишь.
kipar 04.07.2013 19:28 # 0
Если в задаче боттлнек - доступ к памяти, то в чем смысл баттла - потестить кто быстрее умеет обращаться к памяти? Если вычисления тоже играют роль - многоядерный код будет быстрее, без разницы с какой скоростью процессор умеет читать и писать в память. Но нет, я думаю ты просто не умеешь ни писать на гпу, ни использовать многопоточность.
anonimb84a2f6fd141 04.07.2013 19:44 # −1
Некий платный переборщик паролей до сих пор не поддерживает многоядерность, про симд молчу. Байтоебы ебанулись вообще, как 10 лет назад писали, так и сейчас пишут.
superhackkiller1997 04.07.2013 20:06 # −1
Какие ядра - чиго ты там распаралелишь? Обращения к памяти? Зачем? Если овер 2 нити на штеуде не дают профита. Будешь питушить кеш чтением? Даже на сотне вёдер ты не выдашь даже 50% нормального мнонитеевого обхода.
Если ты запилишь нормальное чтение/запасиь памяти, не питуша кеш - у тебя в неё упрётся уже на одном ведре. Второе ведро тебе даст в районе 5%, остальные вёдра 0.
Ты выучил новое слово? Иди питушок хоть посчитай, что такое симд.
anonimb84a2f6fd141 04.07.2013 20:15 # −2
superhackkiller1997 04.07.2013 20:35 # −1
А ты знал, что симд быстрее памяти в десятки раз? Чтобы сложить 8флоатов - тебе надо прочитать из памяти 16 флоатов, а складутся они из за такт. Память работает со скорость 20гигов в секунду, а кешлайн 64байта - это 15тактов на кешлайн. Один avx мув - это 32байта - т.е. читает задержка на 1кешлайн в среднем 13тактов. Т.е. чтобы прочитать 8флатов из разных кешлайнов - тебе надо 26тактов - один из которых, предположим - ты будешь их скаладывать.
Что ты будешь делать остальные 25тактов? Вывод - ты нихрена не знаешь о симд.
guest 05.07.2013 03:21 # 0
superhackkiller1997 05.07.2013 12:50 # 0
guest 05.07.2013 03:22 # 0
superhackkiller1997 05.07.2013 12:51 # 0
guest 05.07.2013 13:42 # 0
superhackkiller1997 05.07.2013 14:05 # 0
Знаешь почему результаты синтетики отличаются от ширпотребного кода? Потомучто ширпотребный код говно. Нормальный код ведёт себя так же, как синтетика.
Знаешь почему тот же новомодный хасвелл быстрее коре2? Нет, глупышка. 90% его быстроты - это память, это скорость памяти и понтовость контроллера памяти. Код работает на i7 быстрее лишь потому, что память быстрее.
Любой код упирается в память, если он не говно.
superhackkiller1997 04.07.2013 19:56 # −1
На гпу будет не особо быстрее - там ещё скидывание результатов. Суть в том, что у матиков есть цпу - это задача помогает понять цпу, и гпу - ибо там теже самый проблемы с обходом. Ты анскильный питух, который этого не понимает - и начал кукарекать.
>Если в задаче боттлнек - доступ к памяти, то в чем смысл баттла - потестить кто быстрее умеет обращаться к памяти?
Да, в этом и суть - глупая лалка. Производительно процессора 40, либо 80гигафлопс на ведро. Производительность памяти 5гигафлопс. Ты понимаешь всю бредовость бреда, который ты несёшь?
На каждый прочитаный из памяти флоат - процессор может делать ещё чутьли не 10 операций, но ты же кукарекаешь.
>без разницы с какой скоростью процессор умеет читать и писать в память.
Ты животное понимаешь вообще что ты несёшь? Ты не понимаешь, почему на гпу совершенно иная память?
Имеет смысл что-то считать в нескольких нитях только тогда, когда ты упираешься в кеш, в остальных случаях - профита нет, кроме тех случаев когда у тебя лга2011 и иже с ним.
>Но нет, я думаю ты просто не умеешь ни писать на гпу, ни использовать многопоточность.
Что там уметь, питух? И что тут уметь, питух? На гпу написать это ещё проще. Нитей пихай хоть сколько - считай первый 2 ряда в 1-м нити, вторые во второй и так сколько угодно.
Ты очередно анскильный питух, который не понимает вообще того, что он несёт.
roskomgovno 04.05.2018 04:37 # 0
Ну, во всяком случае тот код ВК, который я видел, точно написал ты
bormand 04.07.2013 20:42 # +2
Авотхуй. Поищи в гугле формулу зависимости производительности от количества процов и "распараллеливаемости" задачи. Формула Амдала, кажется, запамятовал название.
Так вот. Формула гласит, что даже если мы не упираемся в пропускную способность памяти, и всего десятая часть вычислений должна исполняться последовательно (т.к. зависит от предыдущих результатов), то хоть 200 процов, хоть 100500, хоть дохуялиард, больше чем в 10 раз ты ускорить вычисления не сможешь. Никак.
kipar 04.07.2013 21:44 # −1
>Суть в том, что у матиков есть цпу - это задача помогает понять цпу, и гпу - ибо там теже самый проблемы с обходом.
А, ну т.е. это не реальная полезная задача, а питушиная обучающая? Ну так бы сразу и сказал.
superhackkiller1997 04.07.2013 21:57 # 0
Ты идиот или притворяешься? Какие нахрен 4 ядра, если одно ядро считает в 10раз читает и считает в 10раз быстрее, а 90% тактов процессор тупо простаивает и ничего не делает.
Ты предлогаешь считать это на 4ядра, хотя это уже на 1-м упирается память - чтобы это жрало в 4раза больше инергии. А чё, у нас же одно ведро выкидывает 90% тактов на ветер - пусть и остальные 3 выкинуть по 99% тактов на ветер - круто же.
>А, ну т.е. это не реальная полезная задача, а питушиная обучающая? Ну так бы сразу и сказал.
Это основа для всего. Так сичитается всё. Похоже строится и общитывется дискритизация любых процессов. Только добавляются множители и граничные условия.
Ты обычная анскильная кукарекалка, которая нихрена не понимает в том, о чём кукарекает. Я тебу уже это 10раз говорил и ещё раз скажу, питух. Не неси херню, питух. Иди почитай, питух.
Ещё раз повторю, тебе животное - 1ядро даст тебе 5% профита - ещё 2 ядра 0% профита - ты получишь 105% перфоманса одного ведра и 300% енергопотребления одного ведра.
Что ты будешь считать на своих остальных 3-х вёдрах?
kipar 05.07.2013 08:02 # 0
Надо же, какой заботливый. А не все ли тебе равно, выкинет ядро такты на ветер от того что твоему потоку нечем его загрузить, или от того что ты ничем его не загрузил? И с каких пор в питушковых (не связанных с реальностью) задачах стали заботиться об энергопотреблении?
>Ты обычная анскильная кукарекалка, которая нихрена не понимает в том, о чём кукарекает. Я тебу уже это 10раз говорил и ещё раз скажу, питух. Не неси херню, питух. Иди почитай, питух.
А ты - школота которая не знает ни синуса, ни физики 7-го класса. Одним словом, "питух".
>Ещё раз повторю, тебе животное - 1ядро даст тебе 5% профита - ещё 2 ядра 0% профита - ты получишь 105% перфоманса одного ведра и 300% енергопотребления одного ведра.
А я еще раз повторю - гпу даст 400% профита (условно, тем более промежуточные результаты оттуда нет никакого смысла каждый шаг считывать, ты бы еще предложил их на винт сохранять), 2 ядра даст 5% (как ты сам признал). Т.е. если ты заботишься об эффективности - пишешь на гпу (или хотя бы масштабируемый код), если просто хочешь попонтоваться использованием процессора на 100% - задействуешь хотя бы второе ядро.
superhackkiller1997 05.07.2013 12:49 # −2
Мне похрен что такое синус, а также похрен на физику 7-го класса.
>А я еще раз повторю - гпу даст 400% профита (условно, тем более промежуточные результаты оттуда нет никакого смысла каждый шаг считывать, ты бы еще предложил их на винт сохранять)
Упоролся? Какие 400% профита. С чего-это не надо. В том и смысл, что надо. Ты будешь считать дифур не сбрасывая промежуточные результаты? Куллстори.
С чего ты, анскильный питушок, вообще кукарекаешь мне тут? Ты нихрена не знаешь ни про цпу, ни про гпу. Ты несёшь тотальную херню. Я уже тебе говорил - может мне мне взять здл и закатать это в кристалл? Быстрее ведь будет.
И да, животное - на цпу и на гпу это пишется одинакого.
kipar 05.07.2013 13:06 # 0
Каждый шаг - результаты не нужны. А если даже нужны - смысл тогда твоих оптимизаций, если ты все равно после каждого шаг будешь копировать весь массив в область хранения?
>С чего ты, анскильный питушок, вообще кукарекаешь мне тут? Ты нихрена не знаешь ни про цпу, ни про гпу. Ты несёшь тотальную херню. Я уже тебе говорил - может мне мне взять здл и закатать это в кристалл? Быстрее ведь будет.
Быстрее. Но дороже. А на видеокарте - дешевле. Ну а заказывать себе процессор покруче вместо того чтоб осилить наконец гпу - так вообще идиотизм. Да и не знаешь про гпу именно ты. Ты кроме убогой сишки для х86\64 ничего не знаешь - ни физики, ни математики, ни структур данных.
>И да, животное - на цпу и на гпу это пишется одинакого.
Ну так если одинаково - что же сразу на гпу не пишешь.
superhackkiller1997 05.07.2013 13:45 # −2
Дак не каждый шанг. Каждый сотый, допустим, либо тысячный.
>Быстрее. Но дороже. А на видеокарте - дешевле. Ну а заказывать себе процессор покруче вместо того чтоб осилить наконец гпу - так вообще идиотизм. Да и не знаешь про гпу именно ты. Ты кроме убогой сишки для х86\64 ничего не знаешь - ни физики, ни математики, ни структур данных.
Стиль написания на гпу не отличается от моего стиля написания. Причем тут покруче - суть в том, что писать что-то на моей коре2 1.86 смысла нет.
Для меня дешевле купить хасвелл и запилить нормально. Если я и заплю это на гпу, то уже после того, как запилю это НОРМАЛЬНО на цпу. Тогда я смогу пацанам показать - вот цпу код, который идеален. А вот гпу код, который сливает хасвелл на карточке за те же 10-11к.
>Да и не знаешь про гпу именно ты.
Что именно? Удиви. Стиль написания там примитивный - захреначил мастрицу в память - натравил сотню-тысячу юнитов - нажал wait() - прошел - хреначишь следующий цикл.
>Ты кроме убогой сишки для х86\64 ничего не знаешь
Для? Вообще-то я знаю чистую сишку. Я знаю гну-сишку, которая работает на всех аппаратных платформах - на которых есть гцц. Я знаю и гас и гис. х86 популярная, ширпотребная архитектура. Есть более лучшие, но не менее быстрые архитектуры - но они не популярны. Где мне их брать? Затариваться старьём на ебее?
superhackkiller1997 05.07.2013 13:45 # −2
Я не знаю только примитивных матмоделей.
>ни структур данных
Никто из вас, питушков, не напишет структуру данных оптимальней, чем я. Мне не надо их знать - я не питух типа тебя. Я понимаю как работает этот мир - создать произвольную структуру данных для меня не составляет труда.
>Ну так если одинаково - что же сразу на гпу не пишешь.
Я уже описал. Я пишу на том, что мне нужно и на чём мне интересно. Напишу предельный код для х86 - авось захочу написать это на гпу.
Понимаешь ещё в чём штука, если я сразу напишу на гпу - пацаны мне скажут "ну на гпу естественно будет быстрее - но у нас нет гпу, у нас есть пару стоек с нехалемами - мы на них и считаем", причем пацаны именно так и говорят. Поэтому первоначальная моя цель - слить лалок, а уж потом я пойду, куплю гпу и буду на нём считать.
guest 05.07.2013 13:53 # 0
Какие пацаны? В таких случаях обычно пишется 2 варианта кода.
superhackkiller1997 05.07.2013 14:06 # −1
kipar 05.07.2013 14:58 # 0
Лол, питух, ты даже синуса не знаешь, float питушней называешь. Куда тебе до каких-то матмоделей?
>Поэтому первоначальная моя цель - слить лалок, а уж потом я пойду, куплю гпу и буду на нём считать.
Ну я уже понял что у тебя питушиная задача, попонтоваться перед питушками.
superhackkiller1997 05.07.2013 15:49 # −2
Что мне о нём надо знать?
>float питушней называешь.
Это итак питушня. Не тормазит она только на х86, на которых тупо тормазит алу и получается так, что типа в конвейеере float не тормазит. Думаешь просто так добавляют mull_add? Иди почитай в штеудмануале таблички с перфомансом интрукций.
>Куда тебе до каких-то матмоделей?
А они мне и не упали - матмодели для бездарных питушков.
>Ну я уже понял что у тебя питушиная задача, попонтоваться перед питушками.
Я уже понял, что ты, питушок, нихрена не понимаешь. О5 съехал с темы и перешел на питушков? Животинушка.
Повторю тебе в 10-й раз - это задача отражает суть любой другой числодробильной задачи. Если ты этого не понимаешь - ты питух.
kipar 05.07.2013 16:24 # 0
Нет, она отражает суть ограниченного класса задач, в которых узким местом является память.
>Что мне о нём надо знать?
Хотя бы школьную программу. Смешно же читать как ты сливаешься начиная лепетать что-то про "графиг похож на полукруг, просто там другой масштаб".
>Это итак питушня. Не тормазит она только на х86, на которых тупо тормазит алу и получается так, что типа в конвейеере float не тормазит. Думаешь просто так добавляют mull_add?
Да-да, и армы и интелы очевидно проектируют питухи, зачем-то добавляя в них поддержку плавающей точки.
>Я уже понял, что ты, питушок, нихрена не понимаешь. О5 съехал с темы и перешел на питушков? Животинушка.
Нет, питух, я стараюсь поддерживать твой стиль общения. В прошлых темах ты утверждал, что не занимаешься питушиными задачами, которые не имеют приложения в реальной жизни. А теперь, питух, вот занялся, пишешь на цпу вместо гпу только чтобы доказать что-то каким-то питухам.
superhackkiller1997 05.07.2013 17:27 # −2
Не совсем память, какой узкий - это 85% всех задач.
>Да-да, и армы и интелы очевидно проектируют питухи, зачем-то добавляя в них поддержку плавающей точки.
В армы впихнули фпу уже когда он стал популярный и питухи стали на нём хреначить фуфло для мобилок.
Работаю не совсем питухи, но интел создают процессоры для питухов, которым нужна плавающая точка.
>Нет, питух, я стараюсь поддерживать твой стиль общения. В прошлых темах ты утверждал, что не занимаешься питушиными задачами, которые не имеют приложения в реальной жизни. А теперь, питух, вот занялся, пишешь на цпу вместо гпу только чтобы доказать что-то каким-то питухам.
Все задачи для гпу/цпу являются такими же задачами. Я делаю её не для того, чтобы только питухам доказать что-то - мне интересно, смогу ли я написать идеальный код.
Для тебя обход массива не имеет приложения к реальной жизни? У меня есть полное описание задачи - уметь обходить массив, и вычислять значение точки юзать соседние точки. Так реализуется вся графа, шейдеры, картинки, видосы, числодробилки. и прочее.
kipar 05.07.2013 19:15 # 0
Нет, вся графа, шейдеры, видосы и числодробилки кроме обхода массива включают в себя собственно алгоритм (который и нужно оптимизировать), именно этим была вызвана чья-то ирония насчет foreach. У числодробилок кроме ДУ в частных производных есть, скажем, линейное\нелинейное программирование. В графе нужно работать с разнородными данными - полигонами\вершинами\вокселями, а не только блюрить текстуры 4096*4096. Вот насчет видео врать не буду - никогда не интересовался. Но и там, несомненно, вся суть тоже не в обходе массива.
>Все задачи для гпу/цпу являются такими же задачами. Я делаю её не для того, чтобы только питухам доказать что-то - мне интересно, смогу ли я написать идеальный код.
Идеальный код под неподходящую архитектуру и бесполезную задачу упирающуюся в память? Питушиное стремление, питух.
superhackkiller1997 05.07.2013 21:07 # −1
Упоролсячтоли? Животное, иди кури шейдеры, видосы, графу и числодробилка - там максимум десяток операций над елементом.
>У числодробилок кроме ДУ в частных производных есть, скажем, линейное\нелинейное программирование.
ко-ко-ко.
>В графе нужно работать с разнородными данными - полигонами\вершинами\вокселями, а не только блюрить текстуры 4096*4096.
Это не блюр, питух. Это усреднение точки по её самой и соседям. Всё шейдеры работают так же. Все переходы рендерятся так же. Все воксели раскрашиваются так же. Питух несёт херню не понимая о чём он вообще несёт.
>Вот насчет видео врать не буду - никогда не интересовался. Но и там, несомненно, вся суть тоже не в обходе массива.
Вся суть какраз-таки в обходе массива. Берёшь x264 - берёшь интеловскйи sb без е и с e. Они отличаются контроллерами памяти - в остальном одинаковые. Сравниваешь - удивляешься, перестаёшь писать херню.
Все вычисления упираются в память питух, даже гпу упирается в память - поэтому туду и пытаются впихнуть самую крутую память. Если бы не упиралось - досих пор бы по pci с оперативой общалась.
kipar 05.07.2013 23:05 # +1
Что, и рейкаст, и освещение работает также? Тоже усредняя по соседним точкам? Впрочем, питух, не зная что такое синус, ты в компьютерной графике все равно ничего не поймешь - максимум, в гугле названия прочитаешь, питух.
>ко-ко-ко.
Не кукарекай, питух, а отвечай давай. Где в симплекс методе сравнение с соседними элементами? А в Гомори где?
>Все вычисления упираются в память
Питух, а при чем тут твой обход массива?
bormand 05.07.2013 23:40 # +1
А что симплекс? Симплекс тоже упрется в память, причем походу даже без SIMD. Там же во время преобразования всего 2 операции на ячейку - умножение да вычитание. А поиском строки и столбца, по сравнению со временем преобразования, можно пренебречь.
Что-нибудь посложнее надо в пример приводить ;)
kipar 06.07.2013 01:01 # 0
bormand 06.07.2013 08:45 # 0
Ну разве что другой метод выбрать...
А как бы вы оптимизировали симплекс, если не секрет?
kipar 06.07.2013 17:00 # 0
bormand 06.07.2013 17:10 # 0
Ну да, тоже вариант. Правда, обычно, такие задачи не особо упрощаются т.к. количество переменных и уравнений зависит от реальных данных.
kipar 06.07.2013 19:33 # 0
superhackkiller1997 05.07.2013 23:54 # −2
Тоже обходом точек. Устреднение - это одна из операций, которую можно получить из сетки. Любой обход сетки - упирается в память, а ты слился питух.
>Не кукарекай, питух, а отвечай давай. Где в симплекс методе сравнение с соседними элементами? А в Гомори где?
А кто с ними сравнивает? Ты сам-то питух, отвел на все мои строчку, или силлся? Ты слился питух, а я отвечаю на все.
Устреднение в данном примере взято потому, что в 90% задач значение точки зависит от её соседей. В остальных 10% ты можешь читерить и считать значение для каждой точки отдельно.
>Питух, а при чем тут твой обход массива?
Тем, что обходится массив - и именно его обход и упирается в память.
kipar 06.07.2013 08:41 # 0
guest 05.07.2013 13:44 # 0
superhackkiller1997 05.07.2013 14:09 # −2
guest 05.07.2013 23:46 # +1
Раздели память на ведра - получишь порядок. Если получится на порядок лучше твоего, ты повесишься? Интересно, что будет делать поциент, если внезапно! выяснится, что он - чемпион в нахуй не нужной дисциплине?
superhackkiller1997 05.07.2013 15:58 # −2
Это тоже фуфло, которое придумал анскильный бездарь, а другие бездари ему вторят - лижбы не писать нормальный код.
>Так вот. Формула гласит, что даже если мы не упираемся в пропускную способность памяти, и всего десятая часть вычислений должна исполняться последовательно (т.к. зависит от предыдущих результатов), то хоть 200 процов, хоть 100500, хоть дохуялиард, больше чем в 10 раз ты ускорить вычисления не сможешь. Никак.
Это не формула питушка гласит - это здравая логика гласит. Только конкретно в этой задаче время обработки одной сетки может стремиться к нулю, поэтому это для неё не работает.
Как именно ты будешь уменьшать время обработки сетки - по ведру на каждую точку, по ведру на лайн, если это конвейер и прочее.
Хотя этот питушок кукарекает просто ради того, чтобы кукарекать - конкретно тут от сотни ядер был бы профит, если бы не память. Но питушки никогда не думают о памяти - поэтому они и питушки. Они даже примитивной кучей руками рулить не могут - какая им память. В этом вся и проблема.
Ну и да, мы можем устремить 90% задачи к нулевому времени, но остальные 10% задачи будет выполнятся за время t, поэтому даже при идальном стечении обстаятельств - мы не сделаем быстрее, чем за t, которое с текущим техаппаратом устремлять даже близко к нулю не можем.
TarasB 03.07.2013 14:10 # 0
Ой, да я же в ещё 14 лет профи был!
superhackkiller1997 03.07.2013 18:40 # −2
Не переносить скобку.
Писать вхламину быстрый, компактный код. Ты никогда этого не мог, да и сейчас не может - поэтому ты питух.
TarasB 03.07.2013 23:02 # 0
Про твой быстрый код мы уже видели.
Зато я умел писать непонятный код.
superhackkiller1997 04.07.2013 14:54 # −3
Самый вменяемый из невменяемых.
>Про твой быстрый код мы уже видели.
Где? Удиви.
>Зато я умел писать непонятный код.
Ты всегда говно писал и будешь писать.
HaskellGovno 04.07.2013 11:52 # 0
Пишешь свой foreach? И давно ты его пишешь? :D
superhackkiller1997 04.07.2013 14:53 # −2
float[4096][4096], float2[4096][4096];
...
float2[256][256] = ((float[256][256] + float[256][255] float[256][257] + float[255][256] + float[257][256])/5);
...
memcpy(float2, float, 4096*4096*4);
Когда питушок, ты дойдёшь хотябы до предела своей памяти - я тебя послушаю, а пока ты жалкий питух.
defecate-plusplus 04.07.2013 15:02 # +4
настоящий supetuhackkiller1997 считал, что float для анскильных питушков
и да, на гпу эта хуита очень неплохо будет считаться
inkanus-gray 04.07.2013 15:18 # 0
superhackkiller1997 04.07.2013 16:10 # −2
Ты питушок и дальше будешь кукарекать, нихрена не зная о матчасти? Причем тут гпу? Он жешь это хотел сделать форичём - пусь сделает форичем, хоть на гпу - я поржу.
roman-kashitsyn 04.07.2013 16:11 # +1
bormand 04.07.2013 16:32 # +2
Судя по словам "изменять сразу float[256][256] ты не можешь, ибо если ты её изменишь - у тебя будет неправильный результат, ибо от неё зависят ещё много точек, которые ты пока не посчитал.", выхлоп зависит только от входа, и совершенно не юзает промежуточных результатов. Да еще и флоаты. Эта задача просто идеальна для расчетов на GPU.
P.S. Когда-то для прикола заливал в текстуру 8192х8192 карту нашего городка, врубал построение мипмапок, и показывал ее на экране со скроллингом\зумом\поворотами. Нагрузка вообще не ощущалась.
guest 05.07.2013 03:26 # 0
superhackkiller1997 05.07.2013 12:54 # −1
А теперь ответь мне питух, кому нужна мемкопи, котораян е упирается в память и кому нужны питухи, которые не могут написать нормально мемкопи?
guest 05.07.2013 22:13 # +1
superhackkiller1997 05.07.2013 22:17 # −2
Да, моя мемкопи быстрее твоей мемкопи, и быстрее самой быстрой gnu memcpy(), а она одна из самых быстрых в мире. Быстрее моей мемкопи запилить нереально.
И да, моя мемкопи не загаживает кеш. А ты будешь удивлятся - почему после мемкопи твой цикл о5 будет подгружатся из оперативы, хотя он должен быть в кеше.
Поэтому твой удел, питух, писать говно и кукарекать.
guest 05.07.2013 22:28 # +2
superhackkiller1997 05.07.2013 23:50 # −2
inkanus-gray 04.07.2013 15:12 # 0
superhackkiller1997 04.07.2013 16:04 # −2
Потом приходи, когда напишешь это так, чтобы оно было быстрее памяти.
Посчитал ты нулевую строку - сохранил во floatl[]; - начал считать вторую - надо считать о5 во floatl[], но ты питушок не можешь записать флоатл назад, и бо теперешний твоё счёт зависит от предидущих записей - думай лучше - кукарекай меньше.
inkanus-gray 04.07.2013 16:40 # +1
Если же нужно посчитать среднее по девяти точкам, то да, работать не будет. Придётся сохранять ещё одну строку (но это уже лишнее)... либо три темпа вместо одного. Итого при втором варианте расход будет 4096*4097 + 3.
superhackkiller1997 04.07.2013 16:57 # −3
0 0 0 0 0 - посчитал, записал в tmp - в темпе лежат не нули.
1 1 1 1 1 - тут ты куда будешь считать? Записать tmp в строку выше ты не можешь - значит нужен ещё один tmp.
О5 начинаешь кукарекать, вместо того, чтобы подумать.
bormand 04.07.2013 16:39 # +2
Нахуя тут memcpy? Свапай указатели и погнали дальше, на следующую итерацию.
P.S. Ну если указатели не нравятся, а массивы в глобалках - напиши две копии расчетного цикла - один из float во float2, второй наоборот. И исполняй их по очереди.
superhackkiller1997 04.07.2013 16:53 # −3
А так же - "твоя идея" со свапом отменяет мемкопи, но не отменяет х2 по памяти. А х2 по памяти - в 2раза медленее.
bormand 04.07.2013 16:55 # +1
x2 по памяти тут написал ты, в качестве примера.
superhackkiller1997 04.07.2013 17:11 # −4
Поэтому пусть мне этот питушок захреначит это на фориче - я поржу, а ты сиди и молчи.
bormand 04.07.2013 17:13 # +1
Дальше код в духе a[y][x] = (a[y][x] + a[y+1][x-1] + a[y+1][x+1] + a[y+1][x] + a[y+2][x])/5. Для крайних строк и столбцов не забываем выкинуть лишние слагаемые.
По окончании прохода у нас внизу остается ненужная строка, и следующая итерация пойдет снизу вверх.
superhackkiller1997 04.07.2013 17:25 # −3
Сколько строк тут не принципиально, если они валяются в л1 - на худой конец в л2.
bormand 04.07.2013 17:42 # 0
Что-то я туплю сегодня, почему там не хватит одной строки?
superhackkiller1997 04.07.2013 18:17 # −4
1 1 1 1 1 - тут ты куда будешь считать? Записать tmp в строку выше ты не можешь - значит нужен ещё один tmp.
У тебя минимум 2 линии взаимозависимые:
0 0 0 0 -- ты не можешь сразу сюда писать - у тебя следующая зависит от этой.
1 1 1 1 -- ты не можешь ни сюда, ни в предыдущую сразу писать - у тебя зависит от предыдущей.
2 2 2 2 -- только сейчас ты можешь начать писать в нулевую.
3 3 3 3 -- а сейчас в первую.
Как-то так.
bormand 04.07.2013 20:03 # 0
Не, смотри:
0 = (4+5+8)/3, 1 = (4+5+6+9)/4, 2 = (5+6+7+A)/4...
В нулевой строке теперь есть одна из строк ответа, исходные данные пока не задеты.
4 = (4+8+9+C)/4, 5 = (5+8+9+A+D)/5, 6 = (6+9+A+B+E)/5...
Здесь я затер одну из исходных строк, но для вычисления последующих она уже не нужна.
8 = (8+C+D+G)/4, 9 = (9+C+D+E+H)/5, A = (A+D+E+F+I)/5
И так далее.
superhackkiller1997 04.07.2013 20:22 # −1
Ты не юзаешь строку как буфер, а смещает ответ вверх - там самым выбивая те же 2строки.
В конце итерации - тебе надо либо юзать ту же мемкопи, причём ещё более медленную - либо юзать кастыли на ммапе и madvise().
bormand 04.07.2013 20:30 # 0
Ну ты дочитай, пожалуйста, до конца тот коммент, в котором я предлагал свою идею: "По окончании прохода у нас внизу остается ненужная строка, и следующая итерация пойдет снизу вверх.".
А после того как вторая итерация закончится - у нас опять есть пустая строка вверху. Из-за такого чередования направлений и не нужно копирование.
superhackkiller1997 04.07.2013 20:59 # +1
Это надо фигачить ещё одну функцию - и уже не факт, что у тебя это всё добро влезит в л1. Для 1024 мои банальный анрольный обход без махинаций занимает 30% l1i на ссе.
Причем, смотри - тебе надо один хрен юзать буферы - ибо тут нельзя юзать не nt r/w, в противном случае - будет тормазить, а в этом - тебе о5 надо будет читать оперативу, что тормазит.
Ты читаешь первую строку в буфер - меняешь настоящую, потом на следующем лайне - ты читаешь предедыдущую уже из буфера, а не из лайна. Записываешь настоящую - а следующую читаешь о5 из буферы. Тут надо в районе больше 3-х буферных строки - с махинациями ещё больше.
Так ты на данном примере даже сэкономишь такты, но я подумаю над твоим предложением.
bormand 04.07.2013 22:24 # +1
А если не секрет, сколько процентов прироста получил от использования non-temporal чтений\записей? Емнип они же почти не дадут профита для самого цикла, а в основном спасают кеши от засирания L3 нашей матрицей.
А как насчет вот такого варианта - 3 буферных строки, на которые ссылаются указатели old, cur, new. Считаем нечто типа a[y][x] = (old[x]+new[x]+cur[x-1]+cur[x+1]+cur[x])/5 пачкой на SSE, записывая кусочек результата в матрицу через non-temporal write. old[x] заменяем на a[y][x+2], загруженное через non-temporal read. В конце строки крутим указатели tmp = old; old = current; current = new; new = old.
Здесь, по идее, 3 буфера спокойно влезут в L2 при ширине матрицы до 16к, и имеется только необходимый минимум non-temporal загрузок/сохранений - на каждом проходе каждый байт читается из оперативы 1 раз и пишется в нее 1 раз.
Возможно еще с префетчем поиграться придется, чтобы a[y][x+2] не тупил.
P.S. Кто-то минусует все твои посты по инерции ;)
superhackkiller1997 04.07.2013 22:45 # 0
Разы. Хотя именно разы дёт nt+префетч.
>Емнип они же почти не дадут профита для самого цикла, а в основном спасают кеши от засирания L3 нашей матрицей.
И этим дают профит - они не засирают наш кеш и мы можем обрабатывать почти со скорость оперативы/2. Без махинаций - мы можем вообще попробовать навечно оставить часть массива в кеше. Если у нас есть 8-10метров л3 - даст буст чутьли не дополовины на 16метровых массивах.
Это вариации того, что я описал - можешь юзать что хочешь - что будет быстрее - то оставь.
Их и надо в районе 3-х - остальные - это махинации с будущим. Да, суть субферов в том, чтобы свести скорость обхода до минимум 50% оперативы.
Да, псевдо nt чтение реализуется через префетч на старых штеудах. Префетч естественно нужен - без него будут тотальная лажа.
Мне похрен на минусяторов - пацан объяснит в чём я не прав - животное минусанёт. Норм пацаны минусуют только откровенную ересь - мне просто лень что-то минусовать вообще.
superhackkiller1997 04.07.2013 23:08 # −2
Код абсалютно одинаков:
Равно:
Заменяем movntps на movaps:
Код записывает 32мегабайтный массив 8гигабайт раз.
bormand 05.07.2013 15:09 # 0
Кстати, подскажешь, чем можно посмотреть эту статистику?
superhackkiller1997 05.07.2013 15:39 # +1
Есть oprofile, но он слишком сложен для рядового юза.
Есть интеловский втюн, под линукс халявный - но он тормазнутое жабаподелие.
Есть valgrind, вернее его часть - но он тормазит. Вроде под маздайку даже есть, а может и нет.
Это сделанно перфом. Перф умеет считать всё: http://pastebin.com/fytzs0Y3 - на новомодных штеудах возможно ещё дохрена чего добавили.
bormand 05.07.2013 15:48 # 0
3.14159265 05.07.2013 16:29 # 0
IPCM же.
http://software.intel.com/en-us/articles/intel-performance-counter-monitor/
https://secure-software.intel.com/en-us/system/files/article/326559/intelperformancecountermonitorv2.4.zip
Помню и под athlon-64 была чудесная тулза. Лет 7 назад смотрел ею.
ЧСХ больше всего память любят архиваторы. Самое большое число промахов в обоих кешах и непредсказанных бранчей выдавал мне winRar.
inkanus-gray 05.07.2013 16:38 # 0
s/v2.4/v2.5.1/
bormand 05.07.2013 21:09 # 0
Спасибо, посмотрю.
3.14159265 05.07.2013 21:14 # 0
bormand 05.07.2013 21:28 # 0
Да на фейхуя мне под винду, под линь без проблем собралось... Вот только:
Error: unsupported processor. Only Intel(R) processors are supported (Atom(R) and microarchitecture codename Nehalem, Westmere, Sandy Bridge and Ivy Bridge). CPU model number: 23 Brand: "Pentium(R) Dual-Core CPU E5400 @ 2.70GHz" :(
3.14159265 05.07.2013 21:44 # 0
Облом, одного поколения не хватило. У меня почти такой же: E5200 в старом компе стоит.
>под линь без проблем собралось.
Да там и фич больше кстати.
>Nehalem, Westmere, Sandy Bridge and Ivy Bridge
А Haswell?
Интел в этих процах запилили чудо-технологию TSX - транзакционную память. Давно хочу попробовать.
bormand 05.07.2013 21:38 # 0
3.14159265 05.07.2013 22:06 # 0
http://oprofile.sourceforge.net/docs/intel-core-events.php
Кстати в кои-то веки я плюсанул петушиного Царя, который.
bormand 05.07.2013 22:50 # 0
Продолжение следует?
superhackkiller1997 04.07.2013 23:16 # −1
Запись:
Кора2:
16384 Kb block: 3369.59 MB/s
16384 Kb block: 8167.27 MB/s
Запись 16-ти метров 8гигов раз. На любом другом штеуде картина похоже - на амд так же, на последних бульдозерах там ситуация чуть равне на паре нитей, ибо контроллер говно - на 4+нитях - там ситуация та же.
superhackkiller1997 04.07.2013 18:18 # −3
superhackkiller1997 04.07.2013 18:21 # −5
Ты не видишь тут произвол и двойные стандарты?
Stertor 04.07.2013 19:43 # −1
guest 05.07.2013 22:12 # 0
3.14159265 05.07.2013 16:07 # +1
Выбери сишку, выбери ОС, выбери конпелятор, выбери железо, плис и схематехнику. Выбери цех фотолитографии и свой идеальный процессор.
Но зачем мне все это нужно? Я выбрал не выбирать си...
Я выбрал заедушное накидывание кнопок на формочку. Почему? Да потому что какие могут быть почему, когда тебе платят деньги.
>>Я не делаю никакие проекты
Это уже интересно.
superhackkiller1997 05.07.2013 17:19 # 0
Я и не говорю, что тебе это нужно.
>Я выбрал заедушное накидывание кнопок на формочку. Почему? Да потому что какие могут быть почему, когда тебе платят деньги.
В том и суть - для тебя программирование - просто дело, сливая на которое время - ты получаешь бабло.
Ты можешь сливать время не только за бабло, на и обновременно с этим на своё развитие - это средний путь.
Для меня программирование - хобби, на которое я сливаю время потому, что мне это интересно.
Естественно для тебя важным является простота - ибо тебе лень сливать больше сил, если бабла в итоге столько же. Для меня это не аргумент - поэтому мы не понимаем друг друга.
>Это уже интересно.
Что конкретно?
LispGovno 03.07.2013 01:12 # 0
Если фигурные скобки есть, то как бы сказал тарас, погроммист низкого качества.
inkanus-gray 02.07.2013 14:52 # −2
HaskellGovno 04.07.2013 11:49 # 0
Stertor 04.07.2013 14:29 # +3
anonimb84a2f6fd141 04.07.2013 18:34 # −2
3.14159265 05.07.2013 15:51 # +3
guest 05.07.2013 22:10 # 0
guest 05.07.2013 22:11 # +3
bormand 05.07.2013 22:54 # +2
Мы сами сделали из него монстра.
guest 05.07.2013 23:11 # 0
>в инете все пытались втоптать его в говно...
Рунет такой рунет. Не унизив спрашивающего, никто отвечать не будет. Вот и научили малолетнего долбоеба.
bormand 05.07.2013 23:44 # +2
Да мне кажется, что оно было изначально. Все-таки когда в юности кто-то в чем-то разбирается лучше своих друзей (а судя по разговорам Царь все-таки шарит в low-level оптимизациях), то он считает, что он может свернуть горы, и ЧСВ зашкаливает...
> Вот и научили малолетнего долбоеба.
На свою голову. Каюсь, "шел бы ты отсюда петушок" написал ему я. До этого он вроде слова "питушок" и "питушня" не употреблял...
guest 05.07.2013 23:49 # 0
bormand 06.07.2013 00:00 # 0
Я тоже когда-то сворачивал абстрактные горы типа эмуляции 8080 проца на 40мГц машинке (с кнопкой турбо!) и вбивания 4кб хекс кодов из журнала только ради того чтобы поиграться с этой древней прогой в шахматы ;)
inkanus-gray 06.07.2013 00:04 # +2
superhackkiller1997 06.07.2013 12:54 # −1
Теперь я лучше понимаю всё, а я не люблю что-то делать, когда я чего-то не понимаю.
Я делаю вещь так, что я мог сам себе сказать, что я сделал хорошо - а спрос с моего кода у меня ещё выше, чем с тех, кого я хаю. А как ты понимаешь - я не могу с себя спрашивать, если я чего-то не понимаю в коде - поэтому ДО ТОГО, как что-то писать - я должен абсалютно полность научится понимать код и всё то, что под ним.
В противном случае - моё дело станет мне не интересным.
superhackkiller1997 06.07.2013 13:17 # −1
Да, царь всегда был царём. Даже в детсаде царь был наровне со взрослыми. Хотя, что самое интересно - пока детки маленькие - они не строят из себя что-то, а слушают и внемлят. Потом, когда детки становятся школотронами и лет до 25-30 - они тотальная потеря для взразумления. Поидее я всегда считал, что большие дяди должны вести себя как 5-ти летние детки - у них не должно быть предвзятости, боязни за свою жопу, боязни слить спор, боязни показаться неправым. Дядям уже должно быть интересно БЫТЬ правым, а не казаться правым в глазах анскилледа.
>Все-таки когда в юности кто-то в чем-то разбирается лучше своих друзей
Да нет у меня никаких друзей и небыло никогда. Мне не интересно быть царём в глазах анскилледов - мне интересно стать царём слив сильных мира сего.
>а судя по разговорам Царь все-таки шарит в low-level оптимизациях
Нихрена я нивчём не шарю. Я пару лет назад начал писать на плюсах, кутишках и прочих. Через полгода одалело, я увидил сишку - в ней небыло всего того, что меня одалевало в плюсах. Я думал: А как пацаны пишут на сишке без крутых С++ фич. Поэтому первым делом я осилил сишку, пиля всевозможные идеальные конструкции - и потом я понял, что сишка сливает питухплюсы просто в говно, ибо я могу реализовать всё, что угодно и даже лучше, чем в плюсах.
Поэтому я и люблю спорить с плюсовиками, ибо я знаю плюсы и знаю их фичи, но я так же знаю, что я могу пилить без этих фич ещё удобней, чем с ними.
В конечном итоге я последний год пишу на сишке - и я рад, но когда я смотрел код сишников - я дивлялся, как эти люди, писавшие на сишке десятилетиям, могут писать такое говна, аля свичи на 500строк. Поэтому у меня ненависть к питух Си. Я считаю, что это неосиляторство позорит сишку - и моя задача донести суть сишки до тех, кто не понимает сишки.
А без low-level писать что-то не интересно, ибо как писать не зная, как это будет работать?
eth0 06.07.2013 17:47 # +2
И тогда, возможно, у собеседников будет меньше поводов и желания харкнуть тебе в морду.
guest 06.07.2013 17:49 # +3
superhackkiller1997 06.07.2013 18:09 # 0
Будет такая же ситуация как с сишкой - я буду знать её как царь, но больше её никто так не знает(меньше 1% программистов) - поэтому всем похрен.
guest 06.07.2013 18:14 # +2
guest 06.07.2013 18:15 # +2
1024-- 07.07.2013 04:41 # +2
Только те самые анскильные питушки начинают питушиться, ведь им нечего ответить, у них есть только бугурт. Не пойму, зачем со своими сишкознаниями опускаться до их уровня.
Царь не перестанет быть царём, если будет предельно вежливо говорить с остальными. Наоборот, он так велик, что его не заботят мелкие тролли.
Народ не знает русский на уровне Пушкина. Но ведь ценителю живописи не обязательно уметь рисовать? Понимать и воспроизводить - разные вещи.
superhackkiller1997, всё же равно придётся общаться с людьми. В противном случае следует перелезть на ассемблер и писать нечто специфичное под заказ за миллионы нерусских рублей.
superhackkiller1997 06.07.2013 13:18 # −1
Я считаю так не потому, что я типа понтовей лалок. А потому, что у меня абсалютно объективно отношение к себе - я знаю насколько хватит моего скилла, и что я могу. За какое время я могу что-то осилить. Я не могу просрать свои царские способности и начать пилить говно.
>шел бы ты отсюда петушок
А в этом и суть. Это называется предвзятость - вы увидили непонятноу конструкцию и сразу вынесли вердикт - "питушня", даже не подумав, почему она не работает. Теперь всех, кто говорит неподумав - я назваю питушками.
bormand 05.07.2013 23:51 # 0
Вот, кстати, да. На иностранных тематических форумах\конфах почему-то я такого отношения к спрашивающим почти не встречал.
guest 06.07.2013 01:13 # 0
bormand 06.07.2013 08:47 # 0
roman-kashitsyn 06.07.2013 09:14 # +2
guest 06.07.2013 12:59 # 0
И не нравится тон - ну так пиздуй дальше, или лучше, вообще форума. Тут любители побрюзжать не нужны.
bormand 06.07.2013 13:21 # +1
Он ответил в какую сторону копать, предложил юзать xpath+html5lib вместо beautifulsoup. Когда ОП попросил выложить пример скрипта - он выложил.
> Что сказали бы о таких на "зарубежных" форумах?
Да ничего бы не сказали ;) Там почему-то не принято переходить на личности и разводить срачи по пустякам. Ну или мне просто попадаются удачные странички, когда я что-то ищу.
> И не нравится тон - ну так пиздуй дальше, или лучше, вообще форума.
Судя по этой фразе - вы типичный представитель рунета ;)
> Тут любители побрюзжать не нужны.
Посмотрите в зеркало, пожалуйста ;)
/thread
guest 06.07.2013 15:06 # 0
>Он ответил в какую сторону копать
Мне не копать нужно было, а конкретный код.
>Да ничего бы не сказали ;) Там почему-то не принято переходить на личности и разводить срачи по пустякам. Ну или мне просто попадаются удачные странички, когда я что-то ищу.
Тебе, наверно, SO попадается? Там все чистят просто.
>Посмотрите в зеркало, пожалуйста ;)
Я не начинаю издеваться над каждым, кто просит помощи (а по-другому это не назовешь).
>/thread
Ты не модератор, сучечка.
bormand 06.07.2013 15:45 # +1
> Мне не копать нужно было, а конкретный код.
Об этом можно было написать в первом посте - "скиньте, пожалуйста, пример как это правильно сделать". Вменяемо и вежливо сформулировать свои запросы, чтобы их не приходилось угадывать другим, это так сложно для представителя рунета?
> Тебе, наверно, SO попадается?
В основном да. Ну и мэйллисты.
> Я не начинаю издеваться над каждым, кто просит помощи
Оп это вы? Ну где там над вами издевались, кроме коммента #7? Посчитали строчки тайком да код не сразу кинули... Вселенская катастрофа...
> сучечка.
И вам не хворать.
guest 06.07.2013 16:09 # 0
Как бы само собой подразумевается, что меня интересует не количество элементов, а код, который это посчитал.
>Ну где там над вами издевались, кроме коммента #7? Посчитали строчки тайком да код не сразу кинули... Вселенская катастрофа...
Этого мало? Не не сразу кинули, а вообще не кинули. Спрашивается, если ты решил повыебываться, пообсирать вместо того, чтобы помочь - ну нахуя ты пришел на форум, нахуя отвечаешь? Рашка, или не рашка. ЧСВ-шное мудачье, вот в чем суть.
>В основном да.
У меня для тебя плохие новости - SO для спрашивающих ДАЛЕКО не такой пушистый, как для тех, кто пришел из гугла, собсно, это такая база ответов, которую заставляют заполнять хомячков, этакий пылесос. На корректно поставленный вопрос могут как качественно ответить, так и не ответить вообще, заминусовать или просто закрыть к хуям собачим без особых обьяснений, причем это все рандомно. И разборки в вопросах там трут, или сами юзеры, или мочераторы.
Так что ты сначала позадавай там вопросы, а потом рассказывай.
superhackkiller1997 06.07.2013 13:22 # −2
guest 06.07.2013 15:06 # 0
superhackkiller1997 06.07.2013 15:24 # −1
Хотя любой вменяемый человек понимает, что в 90% случаев консолечька сливает гуйню в хлам. В остальных 10% тоже, просто там крысный интерактив.
guest 06.07.2013 15:59 # −2
* Пердолики АНАЛьно ПЕРДОЛЯтся с консолью.
* Пердолики мечтают, что бы все другие тоже ПЕРДОЛились с консолью. Им обидно что никто кроме них не хочет, так яростно ПЕРДОЛИТСЯ.
* Пердолики яростно флюдоросят, вылизывая АНУСЫ друг у друга и яростно дрочат на любое проявление ПЕРДОЛИКСА™, особенно на ПЕРДОЛЕНИЕ консолью в жопу.
* По мнению пердоликов ПОПЕРДОЛИТСЯ КОНСОЛЬЮ на ночь, днем и еще вечерком пару раз - есть естественное желание любого нормального человека. (ЛОЛШТО?). Остальные просто не поняли этого.
* СВОБОДА И НЕ_СВОБОДА. По мнению пердоликов СВОБОДА днями и ночами ПЕРДОЛИТСЯ С ПЕРДОЛИКСОМ лучше СВОБОДЫ не_ПЕРДОЛИТСЯ днями и ночами с другими ОС.
Причем СВОБОДА НЕ_ПЕРДОЛИТСЯ в ужасе называется НЕ_СВОБОДОЙ ПЕРДОЛИКАМИ.
* СВОБОДА пердоликов имеет странный вкус. ВКУС_ГОВНА. Остальные просто не поняли всю прелесть вкуса ГОВНА из АНАЛа.
* Пердолики всегда стремится АНАЛЬНО огородится. Любой БУГУРТ провоцирует выпил постов/тредов. ЛЕГИОН призирает пердоликов за это. Особенно того пердолика что выпиливает посты на сосаче. БУГУРТ, да?
guest 06.07.2013 16:14 # −1
Пользователь линукс — по сути жертва обстоятельств, анальный клован, у него очень дохуя времени надрачивать компьютер в полной мере, ведь он или не работает, живя на мамкиной шее (если ему 20 и больше), или школьник. Поэтому пердопетушки остаются вечными дитями, с горем пополам освоившими заправку картриджей, не вникая в тонкости общения с реальными людьми. Называть их иначе как петушками совесть у людей не позволяет.
А вопли некоторых пердоликов, называющих виндовс «питухос», это чисто из-за баттхерта и неимения аргументов, как бы голословное утверждение. Это как в детском садике:
— Вася, ты все-таки не из той пизды уродился, туповат ты.
— Сам дурак!! САМ ДУРАААААК!!!
guest 06.07.2013 16:14 # −2
guest 06.07.2013 16:14 # −2
дегенeраты, чмошники, высерки, лохи, лузеры обреченные годами сидеть у папы с мамой на шее и пердолится консолью в сраку ПЕРДОЛИКС™ [spoiler]ЖМУ/АНАЛИКС™[/spoiler] до 30 лет. потом у них просветление в 30 и они идут картриджи заправлять/менять.
Но к ним я отношусь хорошо, как и к наркоманам. Наркоманы должны сколотся и сдохнуть. А пердолики, своего рода КАЛ от IT, должны пребывать на социальном дне и освободить рабочие места в IT для адекватных людей. Это естественный отбор, слабые должны умереть. Ничего личного.
guest 06.07.2013 16:15 # −3
guest 06.07.2013 16:15 # −2
план адептов штульмана прост и понятен абычнаму пользователю: приходим, говорим, что всё говно, костыли, за деньги, закрытая проприетарщина, а ПЕРДОЛИКС рулит. когда нам приводят контраргументы, говорим, что пост не имеет смысла! или еще лучше, говорим, что у оппонента не хватает ПЕРДОзнаний! занавес!
guest 06.07.2013 16:16 # −2
guest 06.07.2013 15:09 # +2
superhackkiller1997 06.07.2013 15:15 # −3
Споря с лалками, в 95% случаев я теряю в ремя - в 5% я наткнусь на человека, который будет в чём-то прав. И уже в следующий раз я буду ещё лучше знать и понимать тему, и ещё больше буду прав. Профит от этих 5% людей перевешивает слив времени на питушков, хотя иногда и питушки могут сказать что-то интересное мне.
Вы же срётесь хрен знает для чего - в этом и разница.
guest 06.07.2013 15:18 # +2
superhackkiller1997 06.07.2013 15:23 # −1
Вот так и выходит. Питух не осилил ЯП на котором пишет. Не осилил гугл. Не осилил мозг и кукарекает, что он чего-то там достоин - нихрена ты недостоин - ты питух, точека.
guest 06.07.2013 15:55 # +3
bormand 06.07.2013 15:57 # 0
Регайтесь на фрилансе, платите деньги, там люди простые, сделают быстро и не дорого, докапываться не будут ;)
А Приходить в интернет с мыслью о том, что вам кто-то что-то обязан, глупо.
guest 06.07.2013 16:10 # 0
guest 06.07.2013 15:08 # +2
guest 06.07.2013 18:19 # 0
superhackkiller1997 05.07.2013 23:48 # −1
И да, я с вами начал разговаривать нормально - про питуха начал кукарекать ты, неудасуживщись разобраться в вовпросе.
guest 06.07.2013 01:11 # +3
П.С. Не кормите.
superhackkiller1997 06.07.2013 12:45 # +1
Я пишу то, что нравится мне - мне не нравится говно - я не могу писать говно, ибо мне проще ничего не писать.
А где полезно - везде. Всё написанно как говно - куда не глянь. Броузер на 50вкладок жрёт 2гига оперативы, торрентокачалка качая насилует диск просто в хлам: 10метров/с на запись, блок 4метра - 550тпс. Как можно было написать такое говно - я не представляю. И это банальная прикладуха. Даже портеж и тот написан как говно. Самое нахрен скилловое комьюнити у генты, но портеж написал как говно.
На уровне не прикладухи всё ещё пичальней. Что делать? Мне купить ссд для торентокачалки? Купить 20гигов оперативы для броузера?
Да банально - парсить файлы НИКТО НЕ УМЕЕТ, даже такую банальщину. Всё это пичально и мне не нравится, поэтому у меня такое отношение к тем, кто не захотел написать нормально. Ладно блин нахрен маздайщик-делфятник заедушный, аля тарас, который просто неспособен что-то написать. Но когда откровенное говно пишет сишное спо-комьюнити - мне становится грустно.
guest 06.07.2013 12:54 # 0
Насчет браузеров - это беда. Они, наверно, имеют суперпупервыебанные фичи, но 95% вебмастеров ими не пользуются, а память браузеры жрут больше на всех сайтах. И вообще, форк пришел с юнипсов, где форки бесплатны, пока процесс не изменит страницу памяти (copy on write), на винде это не так. Но это уже обсуждение браузеров.
superhackkiller1997 06.07.2013 13:30 # 0
>можно привести к нормальному виду без дрочерства с тактами и кешем процессора, более того - написана она может быть хоть на яве, хоть на питоне, хоть на руби, оно абсолютно общее для всех языков. Или мне СИШКОПРОБЛЕМЫ припомнить?
Нет, именно оно и нужно. Нужно нормально написать кеша( на жабе/руби/питоне ты это не сможешь), вычислялки контрольных сумм, strcmp(), нормальную работу с сокетами.
Где на жабе/питоне/руби епуллина и нормальные калбеки? Нету - в этом и проблема. Где нормальное посиксапи? Нету - поэтому код и говно.
Где на жабе/питоне/руби нормальное управление памятью? Как я буду строить свои систему кешей, чтобы добится <1 иопса в секунду? Нету - в этом и проблема. Где нормальное посикс апи? Где лсики, где madvise(), mmap()?
Проблема торрентокачалок именно в том, что они написанны на сишке так же, как и на жабе/питоне/рубях - в них нет нормального кеша, нормального балансёра, нормальной работы с сетью - в них скорость на блоках скачен - они неспособны нормально обрабатывать тысячи коннектов в секунду. Их sha1() еле-еле выдаёт 5-6гигов в секунду, а кеша работают на уровне 20гигов в секунду.
Браузеры говно по определению - их уже не спасти.
bormand 06.07.2013 13:59 # 0
superhackkiller1997 06.07.2013 14:01 # 0
bormand 06.07.2013 14:07 # +1
https://wiki.theory.org/BitTorrentSpecification - вот тут получше расписано.
http://bittorrent.org/beps/bep_0005.html - DHT, без него вполне работает.
inkanus-gray 06.07.2013 14:17 # 0
Так что DHT и PEX можно отложить на потом.
superhackkiller1997 06.07.2013 14:34 # −3
inkanus-gray 06.07.2013 17:24 # +1
http://download-origin.transmissionbt.com/files/ Да, libtransmission написана на сишечке. Стоп! Она уже упомянута выше.
http://mldonkey.sourceforge.net/BitTorrent
Тут коллекция ссылок на протоколы.
superhackkiller1997 06.07.2013 18:14 # 0
А описание протолов - говно. Что как - куда пихать. Всё это для меня логики не имеет, поэтому мне нежун пример. Поэтому мне проще взять трансмиссию, взять wireshark и отснифать.
Я вообще не представляю, что нужно в протоколе, кроме пары оппкодов. GET_BLOCK;TORRENT_ID;BLOCK_ID; - тебе в ответ клиент посылает этот блок, в конце вы обмениваетесь статусами - Всё ок, спасибо, либо Всё ок, дай ещё пару блочков. Если это поверх tcp.
inkanus-gray 06.07.2013 18:19 # +1
http://bittorrent.org/beps/bep_0015.html
А между клиентами хитрее. Там может быть tcp, а может быть uTP — ересь, придуманная мюторрентом:
http://bittorrent.org/beps/bep_0029.html
superhackkiller1997 06.07.2013 18:23 # +1
inkanus-gray 06.07.2013 18:27 # 0
http://bittorrent.org/beps/bep_0003.html
Возможно, проблема в том, что такой свиток текста плохо читается. Его приходится просматривать несколько раз целиком.
guest 06.07.2013 18:26 # 0
guest 06.07.2013 18:26 # +4
superhackkiller1997 07.07.2013 01:22 # 0
guest 06.07.2013 18:20 # 0
superhackkiller1997 06.07.2013 18:25 # +1
Что вам не нравится - я не понимаю.
guest 06.07.2013 18:26 # 0
superhackkiller1997 07.07.2013 02:15 # 0
Ладно udp анонсер ещё можно понять, хотя без слёз не взглянешь, но http анонсер - лютая фекалия.
Как всегда проще запилить свой торрент, чем реализовать нелогичное говно - но я держусь.
П.С. Да, это будет моя жжешечка.
guest 06.07.2013 14:43 # 0
Чтоэта?
>Где на жабе/питоне/руби епуллина и нормальные калбеки
Ебанулся? Твои каллбеки называются замыкания и есть они почти в любом языке, кроме явы, конечно.
>вычислялки контрольных сумм,
Стандартная библиотека.
>Нужно нормально написать кеша( на жабе/руби/питоне ты это не сможешь)
Пруфов, конечно, не будет. Про азуреус не слышал? Он явовый.
>Их sha1() еле-еле выдаёт 5-6гигов в секунду, а кеша работают на уровне 20гигов в секунду.
Это, блядь, просто пушка! В каком месте вычисление хеша узкое место? Откуда ты собрался с такой скоростью читать? Так и знал - диванный кукаретик-синтет. Можно игнорить.
>в них нет нормального кеша, нормального балансёра, нормальной работы с сетью - в них скорость на блоках скачен -
Все это можно написать только пердолясь низкоуровневыми оптимизациями под конкретную модель процессора?
>они неспособны нормально обрабатывать тысячи коннектов в секунду.
При чем тут сишка-то?
Блядь, да у тебя еще и кругозор нулевой, кукаретик. Синдров утенка и АССЕМБЛЕР в срачле.
Зато в других языках нет СИШКОПРОБЛЕМ, как ручное управление памятью и связаные с этим радости вроде сегфолтов и утечек, про ПЕРЕПОЛНЕНИЯ БУФЕРА вообще молчу, есть исключения, а значит, они безопасны по умолчанию, в отличие от сишки, где забыл проверить код возврата - и получил рнр, где главное продолжать работу любой ценой.
inkanus-gray 06.07.2013 14:48 # +1
superhackkiller1997 06.07.2013 15:01 # −2
man epoll
>Ебанулся? Твои каллбеки называются замыкания и есть они почти в любом языке, кроме явы, конечно.
Как мне записать указатель на этот калбек в кернелспес, чтобы сразу вызывать его? Иди почитай как работает епуллина.
>Стандартная библиотека.
ко-ко-ко, говно твоя стандартная библиотека.
>Пруфов, конечно, не будет. Про азуреус не слышал? Он явовый.
Ты упоролся? Предел для твоих кешей в яве - гигабайты. Предел для сишных кешей - десятки гигабайт. Посчитай.
>Это, блядь, просто пушка! В каком месте вычисление хеша узкое место? Откуда ты собрался с такой скоростью читать? Так и знал - диванный кукаретик-синтет. Можно игнорить.
Я скачал блок в кеш, на твоей питух яве я обработаю его(посчитаю кеш, сравню, запишу на диск) за 100к тактов, на сишке за 10к. А если мне надо скинуть 10блоков? Опа уже ггц, опа уже я сожру у юзера целое ведро. А на сишке будет всплеск на 100к тактов.
>Все это можно написать только пердолясь низкоуровневыми оптимизациями под конкретную модель процессора?
Не под модель, а под х86. Хватит кукарекать в тех темах, в которых не шаришь. Всё это "конкретная модель процессора, чипсета и т.п." ушло лет 10назад.
Ты это напишешь пользуясь низкоуровневыми особенностями ОС, ибо на типух майздайке этого нет.
>При чем тут сишка-то?
Ну посчитай - в сишке 10к тактов на калбек - в яве 100к. Когда ведро загнётся? Ты думаешь треды в твоей яве просто так придумали?
superhackkiller1997 06.07.2013 15:01 # −3
О5 мне кукарекает питушок, который нихрена о работе ОС, ЯП, подсистем памяти не знает.
>Зато в других языках нет СИШКОПРОБЛЕМ, как ручное управление памятью и связаные с этим радости вроде сегфолтов и утечек, про ПЕРЕПОЛНЕНИЯ БУФЕРА вообще молчу, есть исключения, а значит, они безопасны по умолчанию, в отличие от сишки, где забыл проверить код возврата - и получил рнр, где главное продолжать работу любой ценой.
Сишкапроблемы удел питухов. У меня нет ручного управления памятью, утечек и сегфолтов. Несуществует никакого переполнения буфера в х86, просто питухи типат ебя об этом не знают - вот и вояют говно.
В сишке есть иключения, в сишке есть переходы в любую часть кода - просто питухам это юзать не дано.
guest 06.07.2013 15:11 # −1
>Именно, и для чего-то более большого сишка уже начинает мешать.
Для следующих своих высеров тебе придется показать, что на других языках это сделать невозможно, или что твои высеры себя хоть как-то окупают. Все остальное ты будешь делать, сидя на шее у мамы.
/thread
superhackkiller1997 06.07.2013 15:21 # −3
Мешать анскильным питухам. Людям только помогает. Зачем мне бороться с гц в яве, юзать какие-то питух классы, тормазящие либы. Жрать в 5раз больше памяти. Думать о какой-то жвм. Мне проще взять и просто написать на сишке, или ты думаешь, что если сишка подходит для самых сложных и больших программ в мире: ОС, конпеляторы, перфоманс - это самые сложные задачи в мире, то для решения простых задач она не подходит?
Ты считаешь, что если у меня есть молоток, которым строят самый сложные конструкции в мире, который может забивать любые гвозди - он забьёт десяток гвоздей хуже, чем твоя жаба? Не смеши мои тапки - ты сам себе противоречишь.
Ну давай - я пишу на сишке торрентокачалку, а потом ты пишешь её на яве и мы поржем. Я поржу как твоя маздайка будет шуршать лсиком, тормазить и питушить. Ты не сможет сделать нормальный кеш даже на 20блоков, не то, что на сотню.
Стоимость поддержки одного коннекта у тебя в разы больше, чем у меня - тебе надо будет юзать сотни нитей, чтобы не словить ГЦлок.
guest 06.07.2013 15:22 # 0
guest 06.07.2013 15:25 # +1
>он забьёт десяток гвоздей хуже, чем твоя жаба
Он забьет медленнее и с большими требованиями к забивающему, а значит, спрос на таких плотников будет только там, где они будут окупаться лучше, чем плотники с более простыми молотками.
superhackkiller1997 06.07.2013 15:28 # −3
А вот, если его возмёт питух - да, он его даже не поднимет. Поэтому удел питухов - забивать один гвоздь в минуту, ширпотребным говном.
Все клали на твоей спрос - меня не интересует сознание нищебродов. Суть не в окупаемости, питух глупый - суть в том, что таких плотников мало, а чем меньше таких плотников - тем дороже их время, ибо они потратили в мильёны раз больше времени на своё развитие, чем рядовой заедушный питух.
Поэтому проще купить 1000питух, которые забивают 1гвоздь в минуту, чем мастера, который забивает 1000гвоздей в минуту. Да и то, матера не покупаются, ибо мастер не заедушный раб с нищебродским сознанием - он просто не будет делать работу, которая ему не интересна.
guest 06.07.2013 15:35 # 0
>Поэтому проще купить 1000питух, которые забивают 1гвоздь в минуту, чем мастера, который забивает 1000гвоздей в минуту.
Реальность обычно выглядит иначе, прыщавый друк. Ресурсы растут экспоненциально, и 20 питухов будут в 10 раз быстрее мастера, а стоить так же, да и с ЧСВ у них будет попроще. А мастер будет сидеть у мамы на шее и рефрешить говнокод.
>Все клали на твоей спрос - меня не интересует сознание нищебродов.
/thread. Так и думал, сидишь у мамки на шее.
Stertor 07.07.2013 10:14 # +1
А почему ты рассуждаешь так свысока, с понтом ты сам не петух?
Stertor 07.07.2013 10:18 # 0
Все это граничит с инфантилизмом, Вам не кажется?
anonimb84a2f6fd141 08.07.2013 00:20 # −3
Stertor 08.07.2013 10:24 # −1
В слове "петух" нет буквы "и", а обращение обособляется - на заметку тебе...
anonimb84a2f6fd141 08.07.2013 20:42 # −3
Stertor 08.07.2013 22:13 # −2
Аллах накажет тибея.
anonimb84a2f6fd141 08.07.2013 23:41 # −5
guest 08.07.2013 23:56 # −4
Stertor 09.07.2013 09:20 # −2
Как же оно звучало, как -то так:
Косяк, забейся!
Нет, не то.
Коньяк, разлейся!
Опять не то. Ах вот оно!!! Я вспомнил!
Кяфир, закиройса!!
Stertor 09.07.2013 09:23 # −2
Stertor 09.07.2013 09:40 # −2
Минуисуя участников, ты помогаешш обществу снижать ЧСВ.
Stertor 25.07.2013 08:40 # 0