Форум программистов, компьютерный форум CyberForum.ru

Скорость выполнения, а так же работа с дв. файлами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Односвязный кольцевой список, реализовать http://www.cyberforum.ru/cpp-beginners/thread613081.html
Помогите написать и реализовать кольцевой список
C++ Работа со структурой Немогу правильно скоректировать функцию удаления.Место победителей неправильно записываеться т.е удаляя первого победителя то при выводе победителей остануться только 2 и 3 место а 1 уже не будет.И не умею писать фун добавления.ПРошу срочной помощи .(курсовая работа) #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define dl_num 3 ... http://www.cyberforum.ru/cpp-beginners/thread613037.html
Найти ошибку в коде. C++
#include <iostream> using namespace std; int main() { setlocale(0, ""); int c, b, a; //a - первое число; b - второе число; c - выбор операции +, -, /, *, cout << "Введите число от 1 до 4"; <<endl; cin >> c; if (с == 1) {
Вещественный массив C++
Дан вещественный массив А . Определить значения вещественного массива Е по правилу: E=Сумме значений i-ой строки массива А, если А>0 E=0 A<=0 Значение переменной i меняется от 0 до 4.
C++ Найти минимальную длину пути http://www.cyberforum.ru/cpp-beginners/thread613021.html
На поверхности планеты, являющейся шаром с радиусом R, заданы две точки со своими широтой и долготой. Найти минимальную длину пути по поверхности этой планеты из одной точки в другую. Ограничения:широта-в градусах -90 до 90, долгота в градусах от -180 до 180, 100<R<10000, все числа вещественные. На С++
C++ Оформить одномерный массив в виде функций и снова я мучаюсь с функциями:wall: и кажется снова они получились вложенными:gscratch: 1.) вычислить номер максимального по модулю элемента массива #include "iostream.h" #include "stdlib.h" #include "stdio.h" #include "math.h" подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16825 / 5246 / 321
Регистрация: 30.03.2009
Сообщений: 14,127
Записей в блоге: 26
25.06.2012, 14:03     Скорость выполнения, а так же работа с дв. файлами
Цитата Сообщение от nexen Посмотреть сообщение
4) Недавно работал с двоичными файлами и нужно было не считывая и не записывая ничего в файл (по неизвестному N, которое определяет кол-во элементов в файле), при помощи fseek пробежаться эти N раз с отступом по sizeof и, соответственно, определить его, но вот беда, fseek в упор не видел feof и EOF. Как ни старался, он его проходит и ничего путного о конце файла не говорит, причем не важно - прошел он его мимо или прямо-таки "наступил" на него.. Кто-нибудь сталкивался?
Пока нет конкретного исходника, предмет для разговора отсутствует

Цитата Сообщение от nexen Посмотреть сообщение
5) Слышал, что функции корня и возведения в степень можно заменить логарифмами и что это, якобы, быстрее, но сколько не шарюсь в гугле, найти чего-то путного по этому поводу не могу.. Можете сказать, как же произвести замену или хотя бы дать ссылку на статейку/заметку?
Вот тебе код функции pow из glibc
http://fossies.org/dox/glibc-2.15/ie...8c_source.html

Цитата Сообщение от nexen Посмотреть сообщение
6) Быстрее ли inline-функция, чем обычная функция? Если да, то на сколько (примерно)? Есть хотя бы 100-200 тактов?
Вопрос так неправильно поставлен. Сама по себе функция точно такая же. Но с учётом точки подстановки вызова - будет быстрее, если компилятор решит, что её нужно проинлайнить. Директива inline НЕ является обязательством с точки зрения inline-подстановки. Если inline произошёл тупо (т.е. операцию вызова заменили на внутренности inline-процедуры), то для intel'овских машин эффект будет сравнительно не большим - навскидку не более 10-20 тактов (примерно таковы накладные расходы на операцию вызова и возврата). Но бывают дополнительные эффекты, когда после inline-подстановки компилятор хорошо перемешает код вызвавшей и вызываемой процедуры и в итоге полученный код очень хорошо разляжется по нескольким конвейерам. В итоге ускорение может оказаться существенным. Но в абсолютных единицах тактов это нельзя выразить, т.к. надо знать длину inline-функции в тактах. В примеру, вполне может получиться так, что вызывающая функция сама по себе работает 100 тактов без учёта операции вызова. inline-функция работает 30 тактов, но после inline-подстановки итоговый код отработает за те же самые 100 тактов (за счёт хорошо спланированного конвейера)

Цитата Сообщение от nexen Посмотреть сообщение
7) Недавно сталкивался с задачкой на оптимизацию и столкнулся с фактом, который не могу объяснить, а именно : цикл от 0 до N работает медленнее, чем цикл от N до 0, причем при больших данных, эта разница была огромной (Задача была в небольшой работе с массивом, был двойной цикл от 0 до (максимум) 2000. При максимальном значении, разница между 0->N и N->0 была в районе 0,3 секунд). Кто-нибудь может пояснить, откуда? Почему такая разница?
Опять-таки без конкретного примера можно только гадать
 
Текущее время: 15:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru