Size: a a a

2020 September 09

d

d7d1cd in pro.cxx
Elisey Budnitsky
Си, узнать время выполнения кода...

struct timeval stop, start; gettimeofday(&start, NULL);
//Code
gettimeofday(&stop, NULL);
printf("took %lu us\n", (stop.tv_sec - start.tv_sec) * 1000000 + stop.tv_usec - start.tv_usec);


Каждый раз возвращает разное время для одного и того же задания, что не так?
На сколько разное? В пределах миллисекунды, секунды, часа?
источник

EB

Elisey Budnitsky in pro.cxx
+- 100 миллисекунд
источник

d

d7d1cd in pro.cxx
А почему Вы решили, что всегда будет одно и то же время выполнения? В один запуск ОС была менее загружена и больше выделяла квантов процессорного времени Вашему приложению. В другой раз было меньше выделения процессорного времени. Вот и все.
источник

EB

Elisey Budnitsky in pro.cxx
в яве такого разброса нет
источник

NP

Nikita Provotorov in pro.cxx
Elisey Budnitsky
+- 100 миллисекунд
приведите примеры результатов
источник

NP

Nikita Provotorov in pro.cxx
Elisey Budnitsky
в яве такого разброса нет
а какой есть?
источник

EB

Elisey Budnitsky in pro.cxx
took 8.272659 us
took 2.045257 us
took 11.075811 us сейчас 3 раза запустил и такой результат, до этого больше намного скакало
источник

АК

Александр Караев... in pro.cxx
Elisey Budnitsky
вот код, который исследовать…

void useArray(void){
   
char s[10000];
   gets(s);
   
for (int i = 0; i < strlen(s); i++){
       
if (s[i] == ' ') {
           s[i] = '$';
       }
   }
   puts(s);
}

void useSymbols(void){
   
char symbol = getchar();
   
while (symbol != '\n') {
       
if (symbol == ' ') {
           symbol = '$';
       }
       printf("%c", symbol);
       symbol = getchar();
   }
   printf("\n");
}
красота, O(N^2) в useArray

почему мы ещё не в @supapro?
источник

EB

Elisey Budnitsky in pro.cxx
откуда n^2?
источник

АК

Александр Караев... in pro.cxx
Elisey Budnitsky
откуда n^2?
в @supapro расскажут
источник

AK

Andrei K in pro.cxx
us это микросекунды, а не миллисекунды.
источник

EB

Elisey Budnitsky in pro.cxx
А почему getchar и сразу обработка занимает больше времени, чем считать строку и обработать её?
источник

DS

Dmitry Sokolov in pro.cxx
Кстати, про сетку, может кто в курсе, может ли sendmsg вернуть partial write на неблокирующихся сокетах? В смысле без EAGAIN, просто transferred < total iov size.
источник

T

Ternvein in pro.cxx
Dmitry Sokolov
Кстати, про сетку, может кто в курсе, может ли sendmsg вернуть partial write на неблокирующихся сокетах? В смысле без EAGAIN, просто transferred < total iov size.
Это особенности реализации, на них не стоит полагаться. Но по идее не должен.
источник

ej

elton john in pro.cxx
всем привет, в общем есть класс шаблонный, внутри него шаблонный метод. Как его определить вне класса?))))
источник

ej

elton john in pro.cxx
просто на
template<typename A, typename Getter>
optional<A> Tree<A>::lookup (Getter bit)
{}
компилятор ругается
источник

SS

Sergey Skvortsov in pro.cxx
elton john
просто на
template<typename A, typename Getter>
optional<A> Tree<A>::lookup (Getter bit)
{}
компилятор ругается
template <typename A>
template <typename T>
void Tree<A>::kek(T) {}
источник

AS

Ayaz Salikhov in pro.cxx
Привет)

Билжу свой код под Linux с помощью clang используя стандартную либу libstdc++.

Хочу теперь попробовать сбилдить всё с помощью -stdlib=libc++.

1. Обязательно ли линкеру проставлять тоже этот флаг? У кланга во всех примерах они по факту сразу билдят один файл, поэтому непонятно.

2. У меня есть сторонняя либа без сорцов. Динамическая и зависит от libstdc++. Правильно ли я понимаю, что если я у этой либы использую только публичный интерфейс и там нет ничего из std::, то всё будет норм?
источник

В

Владимир in pro.cxx
elton john
всем привет, в общем есть класс шаблонный, внутри него шаблонный метод. Как его определить вне класса?))))
Tree<A>::template kek<T>(arg)
источник

VK

Valentin Kornienko in pro.cxx
Ayaz Salikhov
Привет)

Билжу свой код под Linux с помощью clang используя стандартную либу libstdc++.

Хочу теперь попробовать сбилдить всё с помощью -stdlib=libc++.

1. Обязательно ли линкеру проставлять тоже этот флаг? У кланга во всех примерах они по факту сразу билдят один файл, поэтому непонятно.

2. У меня есть сторонняя либа без сорцов. Динамическая и зависит от libstdc++. Правильно ли я понимаю, что если я у этой либы использую только публичный интерфейс и там нет ничего из std::, то всё будет норм?
По идее, если вы не перекидываете типы, которые завязыны на СТД и она влинковала в себя рантайм- нормально должно быть
источник