Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Четырёхмиллиардный Выключатель.

Автор: FuzzyLogic
Дата сообщения: 01.07.2005 23:53

Цитата:
Неужели так сложно, открой класс со 100 000 000 выключателей, мой и другой, возми у меня на сайте Тестер Скорости Кода и прогони в цикле на включение и отключение, или любые другие команды. Результат в файле. Удачи.

Вы попросили комментариев, и предложений что надо ещё сделать (вам сделать, не нам). Вам предложили. Не хотите - не делайте, но перекладывать своё на других как-то несолидно.
Автор: OtD
Дата сообщения: 04.07.2005 21:39
FuzzyLogic
Я Вас понимаю, но что делать если тебе не верят?
В заголовке я привёл сравнения, вот кто сомневается, пусть и протестирует.
Для меня так это обычная практика, тестирование кодов.
Автор: HarmEr
Дата сообщения: 19.08.2005 21:10
OtD


Цитата:

Код:
void main()
{
// ulM надо сдвинуть влево на 8 битов:
unsigned long ulM[] = {0xCCCCFFFF, 0xCCCCFFFF};
unsigned long ulBuff;

// Первое сдвигаем без проблем, выдвигаемые биты не нужны.
ulM[0] <<= 8;
// Со вторым посложней, выдвигаемые биты нужно разместить в первом.
// Сначало обработка левой части.
ulBuff = ulM[1] >> 16; // Левую половину в правую и в буфер.
ulBuff <<= 8; // Сдвиг.
ulBuff >>= 16; // Нужна только левая половина.
// Объединение первого с выдвинутыми битами из второго.
ulM[0] |= ulBuff;
ulM[1] <<= 8; // Сдвиг второго. Всё.
//
}



Код:

// ulM надо сдвинуть влево на 8 битов:
unsigned long ulM[] = {0xCCCCFFFF, 0xCCCCFFFF};

*((unsigned __int64*)&ulM[0]) <<= 8; // MS, INTEL C, for GCC use "unsigned long long"

Автор: segeich
Дата сообщения: 20.08.2005 13:22
OtD
1. Качество кода низкое
а) Повальное нарушение принятых соглашений и стандартов:
- использование имен, состоящих из большых букв, для объектов, не являющихся define'ами (на твой код очень тяжело смотреть - он "кричит")
- использование _ и __ в именах
- нет единства в именовании переменных (snStr, szStr, dwNomBita, Razm)
- смесь французского с нижегородским (если уж ты взялся предоставлять двуязычный интерфейс, то будь добр снабжать функции с английскими названиями английскими же именами параметров и английскими комментариями)

б) Непереносимость
- __fastcall, __stdcall, __declspec и тому подобные нестандартные расширения
- Lib, а также Dll, эспортирующая С++ объекты, не переносимы даже в рамках Win32
- ассемблерные вставки
- скорее всего код не работает на big endian платформах

2. Плохая реализация
- Если тебя не устраивают возможности стандартных средств (vector<bool>, bitset, boost::dynamic_bitset), то надо было наследоваться от одного из них, добавляя новые функции. Иначе твой класс нельзя совместно использовать с существующим кодом.
- Аналогичное замечание про самопальный exception
- Где operator[], где запись/чтение в/из потоков?

3. Бессмысленная оптимизация
Не раз утверждалось, что этот класс во столько-то раз быстрее, и занимает мешьше памяти, чем стандартные альтернативы. Даже если это так, то приведи примеры реальных задач, для которых работа с битовыми полями - узкое место по скорости (памяти), а так же оцени долю таких задач от общего числа. Я вот не могу себе представить программу, в которой нужно производить миллиарды операций сдвига и выделять миллионы битов.
Напоминаю, для тех кто в танке , первое правило оптимизации: не оптимизируй [Sutter]

Вывод:

Цитата:
Оценка 2 - когда код имеет очертания, но бесполезен и в большей степени нужен для образовательных целей.
Автор: OtD
Дата сообщения: 25.08.2005 21:11
segeich
Спасибо за конструктивную критику в некоторых местах, но многое обычные придирки

Цитата:
1. Качество кода низкое
а) Повальное нарушение принятых соглашений и стандартов:

То что ты перечислил, это далеко не стандарты, а стиль письма, и критиковать за стиль, значить говорить о своей линейности мышления или защите своих не меняющихся понятий.

Цитата:
б) Непереносимость

Тут ты прав, но никто и не претендует на это.

Цитата:
2. Плохая реализация
Иначе твой класс нельзя совместно использовать с существующим кодом.

С каким кодом? Включай и используй. Ты в каких рамках заперт?

Цитата:
Аналогичное замечание про самопальный exception

А где ты видел не самопальные исключения?

Цитата:
3. Бессмысленная оптимизация


Цитата:
Я вот не могу себе представить программу, в которой нужно производить миллиарды операций сдвига и выделять миллионы битов.

Не надо так громко кричать о своём узком кругозоре.

Цитата:
Вывод:
Оценка 2 - когда код имеет очертания, но бесполезен и в большей степени нужен для образовательных целей

Что же ты так, хоть бы троичку поставил

В любом случае тебе спасибо за потраченое время и подробное ознакомление с моим сайтом.

Страницы: 12

Предыдущая тема: 1C Программирование и поддержка


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.