Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Пережитки С https://www.cyberforum.ru/ cpp-beginners/ thread793049.html
Добрый день. У меня вопрос по поводу пережитков языка С. Сегодня открыл чужой код и встретил такие конструкции: FILE *p_f = fopen(file_name, "filename"); fprintf(p_f, "VarName= %d\n", someVar); sprintf(data_name, "%s/data.txt", dir_name); и подобную хрень. Это случаем не считается пережитками? Я привык, что чтение/запись в файл происходит с помощью потоков. Или эти конструкции работают...
ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка? C++
void Array::getArray() // вывод массива { for (int ix = 0; ix < size; ix++) cout << setw(5) << ptr; // вывод элементов массива на экран cout << std::endl; // новая строка } ostream &operator<< (ostream &output, const Array &obj) {
C++ Реализация while в своем компиляторе В качестве курсовой делаю простенький компилятор. На входе он получает примерно подобный код: int y=10; float h=5.2; write(y); float x; x=0; x=x+read; Все работает. Но есть задание добавить цикл while, и тут появились сложности. С моей корявой реализацией я не знаю как его зациклить и как выйти в нужный момент из этого цикла... Если прога получает такую строчку: while a>b c=c+1; b=b+1;... https://www.cyberforum.ru/ cpp-beginners/ thread793028.html C++ Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++ https://www.cyberforum.ru/ cpp-beginners/ thread793027.html
Сделать функцию, которая принимает двумерный массив и возвращает индексы его максимального элемента(номер строки и столбца), с указателями, С++
C++ Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++
Сделать функцию, которая принимает одномерный массив и возвращает индексы его максимального и минимального элементов, с указателями. С++
C++ Цикл: Найти и напечатать все простые числа, меньше 100 https://www.cyberforum.ru/ cpp-beginners/ thread792999.html
Надо написать программу, которая находит и печатает все простые числа меньше 100, дайте, пожалуйста, пример, от которого можно отталкиваться. Заранее спасибо.
C++ Определить число в последовательности цифр https://www.cyberforum.ru/ cpp-beginners/ thread792997.html
Определить, есть ли в последовательности цифр число, например 13. Я рассуждал это так: Нужно взять в числе первую цифру и сравнить ее со следующей цифрой, если нет взять вторую и сравнивать со следующей, и так далее пока не будет достигнута условие.
Двусвязный список C++
Вот решил написать двусвязный список. Написаны только две функции решил попробовать работает или нет, оказалось, что нет. Компилятор почему-то здесь выдает ошибку, но я не понимаю почему. p->next = p1; list.h #ifndef list_h #define list_h class list { public: list(){head = new (node); head->next = NULL;}
C++ Почему поток записи в файл wofstream ничего не пишет? https://www.cyberforum.ru/ cpp-beginners/ thread792969.html
VisualStudio2012, Win7x64Prof Если запись в файл производить в той же функции, где созданы объекты потоков, то запись происходит нормально. Но если потоки создать отдельно, а потом передавать их в качестве параметров в функцию, то запись не производится, а после метода close() устанавливается флаг ошибки. int Fill(std::wofstream *const pfw_S, std::wofstream *const pfw_P) { //создадим...
C++ Вызов конструктора текущего типа Как сделать? В шарпе можно так class MyClass { public int A,B; MyClass(int a, int b) { A = a; B = b; } https://www.cyberforum.ru/ cpp-beginners/ thread792968.html
C++ Функция strcmp
В каком файле посмотреть функцию strcmp? В string.h смотрел и там ничего не нашел. В string тоже нет. Точнее в string.h есть, но там только один заголовок а самой функции нет.
C++ Как освободить состояние потока ? https://www.cyberforum.ru/ cpp-beginners/ thread792955.html
Здравствуйте. Нужна помощь. Вот небольшая часть моей программы int nr_block; while (true) if (cin>>nr_block,cin.good()) { cout<<"It's OK "<<'\n'; break; } else {
3 / 3 / 1
Регистрация: 24.06.2012
Сообщений: 50
0

Не могу разобраться с отчётом профайлера - C++ - Ответ 4170708

23.02.2013, 15:30. Показов 456. Ответов 2
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.

Решал я простенькую задачку и решил для интереса посмотреть профайлером как оно там работает. Столкнулся с полным несоответствием тому, что я ожидал увидеть.
Есть примерно такой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// ввод n
 
for (int i = 0; i <= n; ++i) 
    if (is_palindrome(i) && is_palindrome(i*i))
        // вывести число-палиндром, квадрат которого тоже палиндром
 
// ...
 
int number_length(long n) { /* ... */  }
 
bool is_palindrome(long n) 
{   
    if (n < 10) 
        return false;
 
    int len = number_length(n);
    
    // ...
}
Скомпилировал я его gcc (MinGW) с ключом -pg и при n = 100 получаю следующие результаты:
Код
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  Ts/call  Ts/call  name    
  0.00      0.00     0.00      110     0.00     0.00  is_palindrome(long)
  0.00      0.00     0.00      100     0.00     0.00  number_length(long)
Т.е., как и ожидалось, вызовов number_length() на 10 меньше, чем is_palindrome(). Но почему is_palindrome() вызывается всего 110 раз, если она дважды вызывается в цикле на сто итераций?

Дальше - больше. Вводим n = 100 000 и смотрим результат:
Код
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ns/call  ns/call  name    
 75.00      0.03     0.03   101090   296.77   395.69  is_palindrome(long)
 25.00      0.04     0.01   100764    99.24    99.24  number_length(long)
Т.е. is_palindrome() была вызвана на 2 * 100 000 - 101 090 = 98 910 раз меньше ожидаемого, к тому же в этот раз и у number_length() "пропали вызовы".

Объясните, пожалуйста, с чем связаны таки результаты?
У меня предположение, что компилятор сам встраивает некий механизм кеширования, оно имеет отношение к действительности?

Добавлено через 8 минут
Небольшая поправка (не могу уже отредактировать оригинальное сообщение).
В цикле предполагалось i < n.
Соответственно, отчёты профайлера будут слегка иными.
Суть проблемы от этого, впрочем не меняется.
Приношу извинения за такую путаницу.

Вернуться к обсуждению:
Не могу разобраться с отчётом профайлера C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2013, 15:30
Готовые ответы и решения:

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива...

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

Выбор профайлера
выбираю профалер, посмотрел AQTime и ANTS Profiler подскажите, по опыту, что лучше, может есть...

запрос из профайлера
отловил в не скульном профайлере запрос, и не один. с тем запросами в котрых нет временных...

2
23.02.2013, 15:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.02.2013, 15:30
Помогаю со студенческими работами здесь

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax,...

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

Не могу написать комментарии для функции поиска, не могу разобраться...
void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int found, start, end; //...

Значение показателей во вкладке Rendering профайлера
Здравствуйте, в профайлере во вкладке Rendering есть значения : SetPass Calls: 27, Draw Calls: 27,...

Не могу разобраться с If-ами. Не могу найти ошибку
Только начал знакомство с программированием. Преподаватель задал задание, написать программу в VLC...

Не могу разобраться с циклами (не могу понять как сделать так чтоб цикл считывал каждый элемент, без массива!)
Натурально число а вводится пользователем.Определить количество не нудевых цифр этого числа . Не...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru