All streams
Search
Write a publication
Pull to refresh
12
0
PuzzleW @PuzzleW

User

Send message
ой, он действительно был монстром — в хорошем смысле слова :)
ага, до 64kb, как сейчас помню! :)
Вы знаете, это не я, как не странно :) Я написал ТСу в личку по вашему совету, он сказал что уже поправил. все довольны. Мне тоже за коммент с исправлением два минуса влепили. Правда кто-то поднял до нуля.
Спасибо за подсказку.
оппа… так быстро…
можно пруф?
вопрос в другом — как будет обстоять вопрос с сервисом на текущие самсунги, в течение ближайших 3 лет? :)
«адептами» — поправьте пожалуйста, я даже не сразу понял что имелось в виду.
я читал в скачанном варианте. атомная бомба, а не книжка :) советую почти всем кто в теме :)
плюсую! :) Остались!!!
PS. я не тот самый придурок что этажом выше, но дома у меня перфокарты ещё завалялись точно :)
а вот перфоратор поискать придётся, да :)
Интересная пошаговая инструкция. Почти в картинках :)
catroot2 восстанавливается автоматом после успешной загрузки?
Пользоваться к сожалению не пришлось, иначе бы отписался о результатах.
Эээх! Так хотел поставить вам галочку за хороший комментарий, и не могу. Срок истёк. Но тем не менее — за BarTab огромное спасибо!
MTonly: + 1
DangerT: ну если речь о совмещении… а не об отказе от сущности как от таковой…
Mithgol: спасибо за наводку.
На неё уже ответили — это 1,5 тысячи Group Policy позволяющих делать с браузером всё что угодно. начиная от блокировки посещения определённых сайтов, и заканчивая настройками безопасности.
ну, можно начать с банального обмена двух переменных местами без использования дополнительной переменной… но HLP-шники заминусуют же)
шучу. иногда такие задачки всплывают. но рано или поздно похожая задачка упирается в классичексие весы: память/скорость.
вообще-то она как раз и должна бы работать…
Всем спасибо!
borisko, извините что развенчали ваш способ, он тоже очень хорош, если задача сложнее чем проверка просто наличия какого-либо символа ;)
доступ у меня не забудьте забрать к вашему волшебному компилятору)
Mrrl: огромное спасибо за правильный пример, у меня rand() его так и не подловил, до динамического изменения строки я б ещё думал )

Автору топика, apollonin: спасибо за возвращение меня во времена программирования!) тема хорошая, поднимайте ещё такие ;)
АГАААА!!! попался %)

with -O3
Method1: 0.001500, 0
Method1+: 0.146800, 10 стреляный вариант
Method2: 0.073800, 0
Method3: 0.109000, 0
вот и посидел, только не отладчиком — кукушками и логикой)
обычные результаты на хосте borisko можно посмотреть выше или вот.

попытался рандомизировать строку, вот так:
for(int i = 0; i < LEN; ++i)
//line[i]='a';
{fill='a'; fill+=(char)((rand()%(10-1+1)+10)); line[i]=fill;} //printf("%d\t",(int)line[i]);}
// line[i]=+(int)(10.0*rand());}
// line[LEN/2]='7';
line[LEN] = 0;
ФИГУШКИ!!! 8)

$ ./maketest (хост borisko)
with -O3
Method1: 0.001500, 0
Method2: 0.073600, 0
Method3: 0.109500, 0

Mrrl: проверил ваш вариант с заполнением строки, вот результат:
with -O3
Method1: 0.001500, 0
Method2: 0.073300, 0
Method3: 0.108900, 0

может действительно gcc тут такой агрессивный? :)
могу дать доступ к виртуалке, но у меня на ней не получилось его обновить
gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5

/home/puzzle/habr/3# apt-get install gcc
Reading package lists… Done
Building dependency tree
Reading state information… Done
gcc is already the newest version.
gcc set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 78 not upgraded.
я бы в версии borisko с -O3 посидел с отладчиком — там вообще цикл остался после обработки напильником компилятором?)))
я решил учесть негативное влияние накладных расходов и воспользоваться вашим методом подсчёта (точнее, вашим исходником =) )

вот набор результатов полученных мною на win7x64 msvs2008:
(менял и размер строки, и количество итераций для проверки)

Method1: 0.371660, 0
Method2: 0.343120, 0
Method3: 0.316570, 0

(это по-моему почти гигабайная строка, 10^9, и 1000 итераций)
Method1: 3.719880, 0
Method2: 3.476280, 0
Method3: 3.174450, 0

с использованием 4 варианта:
Method1: 0.372020, 0
Method2: 0.350170, 0
Method3: 0.319430, 0
Method4: 0.206550, 0

но потом я решил запустить эту же версию на *nix, вот результаты:

мой первый хост с убунту:

puzzle@somehost:/home/puzzle/habr/3# ./test_3
Method1: 0.256500, 0
Method2: 0.100500, 0
Method3: 0.125500, 0

^^^^^^^^^^^^^^^^ странно?!
0
puzzle@somehost:/home/puzzle/habr/3# ./test_
Method1: 0.378600, 0
Method2: 0.339100, 0
Method3: 0.310600, 0

vds: (но пришлось уменьшить длину строки до 10 метров, иначе убивалось)
with -O3
Method1: 0.026016, 0
Method2: 0.010859, 0
Method3: 0.012344, 0 — такое ощущение что компилятор сам себе переоптимизировал

without
Method1: 0.034609, 0
Method2: 0.037656, 0
Method3: 0.027734, 0

borisko's host:

with -O3
Method1: 0.002200, 0
Method2: 0.073700, 0
Method3: 0.109700, 0

КАК???


without
Method1: 0.299400, 0
Method2: 0.299900, 0
Method3: 0.273300, 0

в общем — я не удержался, простите заранее :)
у вас стоит аж CPU0: Intel® Core(TM) i7 CPU 920 @ 2.67GHz
я покопался и нашёл в окрестностях i5 650 — пошёл проверять на нём =)))

на нём все странно (win7x64)
Method1: 0.667020, 100 — странно исходя из предположения что дело в платформе iXXX
Method2: 0.287640, 100
Method3: 0.291820, 100
Method4: 0.105980, 100

Покопался ещё и запустил бинарник (опять винда, но на этот раз 2008) на X5650
Вот результаты:
Method1: 0.209740, 100
Method2: 0.105180, 100
Method3: 0.102230, 100
Method4: 0.038360, 100

опять всё ожидаемо.

Итого…
borisko, колитесь — ЧТО у вас за система такая реактивная? :)))
Mrrl: а у вас нет идей?

PS. с одной стороны, я считаю что сравнивать «на скорость» вообще имеет смысл только алгоритмы, дабы избежать влияния оптимизаций (не будем забывать что у нас синтетический тест со статическими входными данными)
с другой же, я прекрасно понимаю что практика — критерий истины. с этой стороны — оптимизации компилятора и кода (не алгоритма! привет (unsigned int) :) ) штука необходимая.

Information

Rating
Does not participate
Registered
Activity