- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
double k;
if(deviceType == "firstType"){
for(int i = 0;i < 100000;i++)
k = pow(2,10);
}
else if(deviceType == "secondType"){
for(int i = 0;i < 700000;i++)
k = pow(2,10);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+101
double k;
if(deviceType == "firstType"){
for(int i = 0;i < 100000;i++)
k = pow(2,10);
}
else if(deviceType == "secondType"){
for(int i = 0;i < 700000;i++)
k = pow(2,10);
}
Думаю этот даунизм поймут все. Маразм крепчал)
а вот на msdn'е http://msdn.microsoft.com/en-US/library/0h227906(v=VS.80).aspx ясно написано Note that the compiler may not store two identical strings at two different addresses
это переводится как "Обратите внимание, компилятор не обязательно разместит две одинаковые строки по разным адресам", что никак ни удешевляет, ни подкрепляет "угу, только в стандарте ни слова ни сказано, что идинаковые строковые литералы будут иметь один и тоже адрес.", "may not" не делает никакого строгого утверждения
<hr/>
По-хорошему надо чтоб оно находило частоту процессора через rdtsc и определяло нужное число итераций.
>k = pow(2,10);
а я видел вариацию с вычислениями синуса
я ж вообще предлагаю завязать количество итераций на частоту девайса.
а насичот жабы, это так для красного словца.
Бывают дивайсы с переменной частотой.
Не стоит отбрасывать возможность таких дивайсов, темболее что для ПК это так, поэтому rdtsc не выход.
Уже есть на ARM или какие там процессоры в "иподах"?
спасибо что просветил кеп, а то мы не знали.
>И причем здесь процессор?
в зависимости от частоты скорость исполнения будет меняться и задержка будет меняться
А она по идее должна быть постоянной.
черт, я заработался и реально не заметил
к сожалению я действительно не совсем понял о чем речь.
Будет полезно, наверное, когда хочется одновременно сделать enum, но и иметь возможность вывести его имя на экран. С обычным enum нужно писать отдельную функцию для этого, с теми же самыми литералами. Так почему их не переиспользовать?
Если нужны строковые энумы — ну так и заводите строковые именованные константы.
Ага, особенно в системах реального времени...
Отвечает, да не настолько. Выделение памяти std::string'ом явно придёт не по душе реалтаймовой ос. std::string даже аллокаторы не позволяет заменять, не говоря уже о том, что манера выделения памяти std::string'ом нормально не ложится не на какие мемпулы.
А я говорил, что std::string не торт.
>Хотите побаловаться с аллокаторами
В реалтайм ос всегда приходится баловаться алокаторами и переводить все на пулы.
>copy-on-write
Это хорошо.
>о какой манере выделения памяти речь
1)О не возможности нормально зарезервировать нужный объём строки заранее
2)Необходима работа с неудобными непродуманными по стандарту аллокаторами.
3)Выделение памяти плохо ложится на работу с пулом, ибо нет ограничения на максимальную длину строки. Элементы пула какого размера использовать?
4)И вообще, вся эта работа с пулами для данного типа строки будет весьма нудна.
Всё равно не пойму, почему вы так усердно делаете акцент на ОСРВ.
Если стоит необходимость использовать память из определенного/заранее выделенного места, это всё вполне может быть характерно для обычных задач оптимизации, совершенно далеких от "реального времени".