LINUX.ORG.RU

[опять я] требуются разработчики в проект


0

2

Я уже пиарил здесь свое поделие, и меня отправили переписывать его с учетом разделения на две части (ядро, которое выводит информацию в консоль и гуй, который ее парсит). Я это сделал и теперь вернулся. Повторюсь, программа предназначена для сбора информации о софте и железе (как пример, lshw и hardinfo, хотя я равняюсь на Everest (ныне AIDA64)) , называется hardinform. Располагается на github: git://github.com/inish777/hardinform
Приветствуется как помощь в создании кода, так и советы (по читаемости кода, архитектуре, и прочее из опыта). Кастую amaora, который хотел написать несколько тестов производительности.

★★

Ответ на: комментарий от lazyklimm

Ты кем работаешь? Ты ж вроде программист? А такие глупости говоришь.

Это не только не внятнее, но еще и O(N) от длины строки.

geekless ★★
()
Ответ на: комментарий от geekless

Это не только не внятнее

внятнее, тут по крайней мере с типом всё ясно.

Это не только не внятнее, но еще и O(N) от длины строки.

из eglibc:


for (char_ptr = str; ((unsigned long int) char_ptr
                        & (sizeof (longword) - 1)) != 0;
       ++char_ptr)
    if (*char_ptr == '\0')
      return char_ptr - str;

и в каком месте оно медленнее?

собственно, даже последнее условие if (*char_ptr == '\0') и то выглядит лучше чем if (*char_ptr)

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

и в каком месте оно медленнее?

а, да, что-то ступил.

В общем, я за if (*char_ptr == '\0')

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

и в каком месте оно медленнее?

Если строка не пустая. С другой стороны, тут экономия на спичках, скорость все равно не критична.

AptGet ★★★
()
Ответ на: комментарий от AptGet

скорость все равно не критична.

В данном случае - да, и вообще, подобные утилиты можно писать даже на бидоне

lazyklimm ★★★★★
()
Ответ на: комментарий от netcat

все, пофиксил, закоммитил

Ну а всякие

char* ch = (char*) calloc (1, MAXLEN * sizeof (char));

так и останутся?

akk ★★★★★
()
Ответ на: комментарий от lazyklimm

внятнее, тут по крайней мере с типом всё ясно.

1. Если программист путается в типах переменных, это плохой программист.

2. Сложно запутаться в типе, когда рядом в коде торчат функции обработки строк.

3. Чтобы понять код if (*p) , не требуется знать _точный_ тип p.

и в каком месте оно медленнее?

Если ты не понимаешь, что алгоритм strlen _в_ _принципе_ не может иметь иную вычислительную сложность, чем O(N), я не знаю, что тут можно сделать. Кнута почитать, может быть? Или кто там на тему O() хорошо писал?

собственно, даже последнее условие if (*char_ptr == '\0') и то выглядит лучше чем if (*char_ptr)

А if ((*char_ptr == '\0') == (0 == 0)) выглядит еще лучше. Или подожди... лучше if (strcmp(str, "") == 0).

geekless ★★
()
Ответ на: комментарий от geekless

1. Если программист путается в типах переменных, это плохой программист.

ситуации разные бывают, вообще-то за этим должен следить язык, но со строгой типизацией у C все отвратно

Сложно запутаться в типе, когда рядом в коде торчат функции обработки строк.

лучше подстелить соломки, ага

Если ты не понимаешь, что алгоритм strlen _в_ _принципе_ не может иметь иную вычислительную сложность, чем O(N)

давай поспорим, что может :D

А if ((*char_ptr == '\0') == (0 == 0)) выглядит еще лучше.

бред какой, ты передергиваешь.

в if (*char_ptr == '\0') проверяется как раз то, что нам нужно(чуть переосмысленно), и смысл понятен даже вне контекста

True и False это True и False, 1 и 0 это 1 и 0, пустой/непустой указатель - это именно указатели, а не что-то иное. Такие дела.

lazyklimm ★★★★★
()
Ответ на: комментарий от lazyklimm

Смешная шутка на основе пропущенного слова «наименьшую». Ок.

geekless ★★
()
Ответ на: комментарий от lazyklimm

знает толк в извращениях сударь? хотя нормальному программированию видно не обучен раз такую глупость сморозил

sendel
()
Ответ на: комментарий от sendel

знает толк в извращениях сударь?

завидуем?

btw, читаем ниже, я таки стормозил. В любом случае, я в первую очередь выступаю за максимальную понятность кода

lazyklimm ★★★★★
()

Забыл сообщить! В моей проге есть киллер-фича: когда температура проца близка к критической (забыл ноут на диване), всплывает уведомление.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

Че-то мне кажется, что топик выдохся.

netcat ★★
() автор топика
Ответ на: комментарий от netcat

принципиально новый подход!

а если серьезно - не нужно, для этого есть другие программы

lazyklimm ★★★★★
()
Ответ на: комментарий от geekless

Ну что я могу сказать, всем спасибо за помощь, пойду пилить дальше, может что хорошего и выйдет.

netcat ★★
() автор топика
Ответ на: комментарий от rg-400

если лежа на диване работаешь за ноутом, то помогает. а так нужно звучок прикрутить, да

netcat ★★
() автор топика
Ответ на: комментарий от xterro

никто не знает. просто идея пришла и я ее реализовал :-)

netcat ★★
() автор топика

Скучно как-то, даже срач на тему памяти уже сошел на нет. Вот сижу и думаю - свой бэкенд написать, чтобы лучше всех был, или плюнуть и парсить вывод lshw. Даже и не знаю что делать.

netcat ★★
() автор топика

Немного позже, если будет время. Лучше бы отдельный проект тестов, хотя там строк будет ~две сотни, потому я сам этим и не занимался.

amaora ★★
()
Ответ на: комментарий от amaora

Ту же самую идею предложил зафрендивший меня товарищ geekless. Идея мне нравится, и отдельный проект для тестов сделать вполне можно. Я его создам и ,чтобы не пустовал, добавлю тесты из hardinfo.

netcat ★★
() автор топика
Ответ на: комментарий от geekless

прости, ошибся. просто у меня появился первый игнораст. я же не знаю кто это. вдруг я тебе поднадоел, что весьма вероятно?

netcat ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.