LINUX.ORG.RU

ipcalc — определить начальный и конечный диапазон адресов

 , ,


0

1

ipcalc может понадобиться если нужно узнать начальный и конечный адрес сети зная адрес и маску. Также отображается количество хостов доступных в сети. В случае ошибки выводится список разрешённых масок.

Подробности

Перемещено Falcon-peregrinus из opensource

Перемещено Falcon-peregrinus из talks



Последнее исправление: Psych218 (всего исправлений: 2)
Ответ на: комментарий от XMs

Любая. Может, там обе твои, а может, твоей и нет. Во-первых, чтобы можно было рассуждать о скорости и потребляемых ресурсах, нужно использовать методы мат. статистики. Если ОЧЕНЬ упростить — запусков должно быть много (нет, не пять-десять), чтобы исключить влияние кешей, случайных процессов и много чего ещё. Также надо запускать в системе, где больше ничего не крутится, чтобы ядро не отвлекалось на посторонние процессы. Ну и ещё по мелочи. Во-вторых, даже если провести замеры нормально и результат не изменится — мне абсолютно без разницы, будет процесс работать 14 тысячных секунды или всего 2 — это в любом случае заведомо быстрее, чем я смогу/захочу заметить на глаз. Я с результатом выполнения буду много дольше ознакомляться, так какая разница?

Да ты хоть сколько раз попробуй. Всё равно, чтобы выполнить perl сценарий, нужно сначала запустить perl.

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

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

чтобы выполнить perl сценарий, нужно сначала запустить perl

Если он уже не запущен и вызов происходит не из perl-скрипта, если он уже не находится в оперативной памяти и т. д.


Каких кэшей? Те что у процессора?

Нет, не только. Кеш-память процессора в данном случае вообще не при делах.

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

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

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

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

Компьютеру тоже глубоко фиолетово, быстро код выполняется или нет, он не живой. Для него код выполняется всегда, пока питание не пропадёт

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

О чём ты споришь вообще. Нагрузи свою ос софтом написанных не на си и ассемблере. И пусть выполняет код. Если ты не уделишь должного внимания к производительности, то и для тебя фиолетово. Только у меня процессор не станет много времени тратить на такую простую задачу, а твоему процессору придётся дольше трудиться, чтобы получить результат.

u0atgKIRznY5
() автор топика
Ответ на: комментарий от u0atgKIRznY5
char *lines = calloc(25,sizeof(char));
memset(lines,32,24);
lines[25]='\0';
sprintf(lines,"%d.%d.%d.%d\033[1;32m",ms.a,ms.b,ms.c,ms.d);
lines[strlen(lines)]=' ';
lines[24]='>';
printf("\033[1;37m%s\033[0m ",lines);

Покукарекай мне тут за производительность с таким-то говнокодом.

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

Мимо шел и внезапно узнал себя. Недавно даже думал удалить свои быдлокодерские поделки с гитхаба, а там уже 40 звезд набежало. Стыд и позор.

entefeed ☆☆☆
()
Ответ на: комментарий от mix_mix

А что? Цвета определены в vga text mode. Мне оформление такого захотелось. Я кстати обновление сделал щас. Можешь зайти ещё что нибудь новенькое посмотреть.

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

char *lines = calloc(25,sizeof(char)); - опять же ненужный calloc, да, он может по скорости не отличаться от malloc, а может быть чуть медленнее

lines[25]='\0'; - запись за пределы буфера

sprintf - не самое эффективное решение, хотя конкретно тут вполне сойдет (задача не требует сверх-оптимизации), но опять же нет проверки длины буфера

lines[strlen(lines)]=' '; - sprintf тебе возвращает длину, зачем опять по памяти бегать?

printf(«\033[1;37m%s\033[0m »,lines); - можно было это записать сразу в lines с тем, чтоб взять fputs, который будет быстрее

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

Я тоже задаюсь этим вопросом. Он деликатно не замечает, что до него пытаются донести и с упорством, достойным лучшего применения, рассказывает сказки про производительность, выдавая код, о недостаткахоб особенностях которого можно долго рассуждать. На гитхабе в сорцах указано имя (Найдолинский Дмитрий), но поиск ничего полезного не дал, кроме одной анкеты в вк с одним другом и фотками задач за 11-й класс, датированными февралём 2013-го. Хз, отличить тролля от вчерашнего школьника, только-только узнавшего о том, что «сишка быстрая» и вступившего в секту свидетелей идеально быстрого кода, лично мне довольно трудно

XMs ★★★★★
()
Последнее исправление: XMs (всего исправлений: 1)
Ответ на: комментарий от anonymous

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

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

Имело смысл делать хотя бы как-то так:

#define WHITE "\033[1;37m"
#define GREEN "\033[1;32m"
#define RESET "\033[0m"
int len = printf(WHITE "%d.%d.%d.%d", ms.a, ms.b, ms.c, ms.d);
printf(GREEN "%*s\n" RESET, 25 - len, ">");

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