Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
brony
77 / 57 / 4
Регистрация: 02.01.2012
Сообщений: 521
1

Что работает быстрее?

11.03.2012, 20:04. Показов 1168. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю игру. Координаты объектов (кубов) должны сохраняться в файл и изменяться во время игры.

Нужно будет задавать значения тысячам элементам массива.
A: array[0..1000,1..4] of integer; (0..1000- кличество элементов в мире, 1..4 - координаты по X,Y,Z и номер типа объекта (это задаёт ему какие-либо свойства));


Куда будет быстрее и с меньшими затратами это заливать?
В нетипизированный файл, ини файл, текст файл, интеджер файл? или что-то дргое?
От этого напрямую зависит скорость прорисовки игровых объектов.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.03.2012, 20:04
Ответы с готовыми решениями:

что быстрее?
имею привычку писать Select .... (select...) или, проще говоря, запрос в запросе препод сделал...

Что отработает быстрее
Что отработает быстрее? Delete(URL, 1, Pos('#', URL)); URL := Copy(URL, Pos('#', URL) + 1,...

Быстрее scanline, или почему SetBitmapBits работает "ИНОГДА"
Всем привет, у меня есть массив, и мне нужно его нарисовать.. Все начинается когда я использую...

Почему программа на Lazarus работает быстрее, чем на C++Builder?
Здравствуйте! Вопрос выкладываю на два форума - C++Builder и Lazarus. Это, пожалуй, не вопрос, а...

11
13104 / 5885 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
12.03.2012, 10:07 2
Лучше бинарный файл применять. И если применяются большие статические массивы, объявленные внутри методов или процедур, тогда надо иметь в виду вот эти сведения о возможном переполнении стека.
Например, загрузка в массив данных из файла:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
  A: array[0..1000,1..4] of integer;
 
procedure TForm1.Button1Click(Sender : TObject);
const
  Fn = 'data.dat';
var
  F : File;
  FileName : String;
  Size : Integer;
begin
  FileName := ExtractFilePath(ParamStr(0)) + Fn;
  AssignFile(F, FileName);
  //Открываем файл в режиме чтение/запись с минимальным блоком в 1 байт.
  Reset(F, 1);
  //Читаем данные из файла в массив.
  BlockRead(F, A, SizeOf(A), Size);
  CloseFile(F);
  
  if Size < SizeOf(A) then
    raise Exception.Create(
      'Ошибка! В файле недостаточно данных. Сведения загружены не полностью.'
    );
end;
Если будет использоваться динамический массив - для него код загрузки будет выглядеть несколько иначе.
Также можно применять потоки данных (потомки класса TStream).
0
16 / 2 / 0
Регистрация: 10.06.2011
Сообщений: 17
12.03.2012, 10:08 3
Нетипизированный файл и текст файл - одно и тоже.
Интеджер файл - это и есть типизированный. Лучше использовать именно его. Так как текст - это лишнее кодирование/декодирование строки и бОльший размер файла
INI-файл - это вообще надо быть извращенцем. Один только поиск по ключу это жестко.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
12.03.2012, 10:29 4
Цитата Сообщение от Anth Посмотреть сообщение
Нетипизированный файл и текст файл - одно и тоже.
Нет, нетипизированный - это сырой бинарник, а текстовый - это читабельный человеком через блокнот.

Добавлено через 1 минуту
Цитата Сообщение от Anth Посмотреть сообщение
Интеджер файл - это и есть типизированный.
Типизировать можно по-разному: можно integer, а можно array[1..4] of integer;
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
12.03.2012, 15:28 5
Цитата Сообщение от Anth Посмотреть сообщение
INI-файл - это вообще надо быть извращенцем. Один только поиск по ключу это жестко.
а ты что, в ини-файле вручную поиск организовываешь? а использовать модуль IniFiles не пробовал?
0
88 / 65 / 2
Регистрация: 04.01.2010
Сообщений: 265
12.03.2012, 18:16 6
Цитата Сообщение от DenNik Посмотреть сообщение
а использовать модуль IniFiles не пробовал?
Вам дело говорят. Любая работа с инькой - та еще улитка. Говорю по опыту.
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
12.03.2012, 19:01 7
Цитата Сообщение от Sophos Посмотреть сообщение
Вам дело говорят. Любая работа с инькой - та еще улитка. Говорю по опыту.
а я не предлагаю хранить в ини гигабайтные БД. но для хранения настроек удобнее ини (если не считать реестр) пока не придумали
0
16 / 2 / 0
Регистрация: 10.06.2011
Сообщений: 17
12.03.2012, 20:10 8
Цитата Сообщение от DenNik Посмотреть сообщение
а ты что, в ини-файле вручную поиск организовываешь? а использовать модуль IniFiles не пробовал?
А вы думаете поиск, реализованный внутри этого модуля все же быстрее типизированного/нетипизированного файла?
Единственный плюс модуля - его удобство. Советую самому открыть файл и посмотреть
Вложения
Тип файла: zip IniFiles.zip (5.1 Кб, 6 просмотров)
0
16 / 2 / 0
Регистрация: 10.06.2011
Сообщений: 17
12.03.2012, 20:12 9
И я думаю, что координаты тысячи кубов в даннов случае будут являться никак не настройками. А скорее как раз "мнимой" БД
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
12.03.2012, 20:23 10
Цитата Сообщение от Anth Посмотреть сообщение
Советую самому открыть файл и посмотреть
спасибо, у меня такой есть.

Цитата Сообщение от Anth Посмотреть сообщение
И я думаю, что координаты тысячи кубов в даннов случае будут являться никак не настройками. А скорее как раз "мнимой" БД
я повторюсь, я НЕ СОВЕТУЮ хранить БД в ини. ты все посты перечитай еще раз.
0
16 / 2 / 0
Регистрация: 10.06.2011
Сообщений: 17
12.03.2012, 20:50 11
Я прочел. Ты пояснил что хранить лучше настройки. Но в теме говорится, к сожалению, не про настройки. А так я с тобой согласен. Я раньше и сам в проектах юзал ини.
0
1905 / 1016 / 123
Регистрация: 08.12.2009
Сообщений: 2,792
Записей в блоге: 2
12.03.2012, 22:48 12
DenNik, Anth, речь идёт о скоростном сохранении и скоростной загрузке, а не об удобстве! Давайте писать по теме!
0
12.03.2012, 22:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.03.2012, 22:48
Помогаю со студенческими работами здесь

Почему процедура работает быстрее в 2 раза, будучи вызвана из главного потока программы
Здравствуйте! Помогите, пожалуйста, понять почему моя процедура работает быстрее в 2 раза,...

Что работает быстрее?
Здравствуйте! Друзья, что лучше (правильнее) использовать: for(int i=0; i&lt;strlen(ABC); ++i) {}...

Что работает быстрее?
Подскажите пожалуйста, какая из данных реализаций будет работать бытрее? int a = 5; int b =...

php5 и c++ Что быстрее работает с строками?
Что быстрее работает с строками? Учитывая то что работа происходит на локальной машине, а не в веб!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru