![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.04.2015
Сообщений: 24
|
![]()
Доброе время суток знатоки.
Помогите ускорить немного код , его суть создания дерева из входящих данных ( данные о сетевом пакете: протокол, исх ip, порт, вход ip, порт, размер данных ) переменные и типы Код:
Код:
Код:
пробовал : Код:
буду признателен за подсказку, заранее спасибо! |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Как вариант вынос в переменные, если это интерфейсы, то ускорение будет.
Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 09.04.2015
Сообщений: 24
|
![]() |
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Не знаю )
Это нужно у тебя спрашивать. Что это за paket такой, какой у него тип.
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 09.04.2015
Сообщений: 24
|
![]() |
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Тогда вопрос: Почему ты решил что вешалка именно на paket[p].sip[sip].sp[sp].dip[dip].dp[dp].size ?
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 09.04.2015
Сообщений: 24
|
![]() Цитата:
Код:
в моем случаи запись в базу в 3 раза медленнее чем в приведенном выше коде ну и если разобраться если взять например "paket[p].sip[sip].sp[sp].dip[dip].dp[k].dp :=DestPort;" выходит что программа несколько раз перемещает указатель на необходимую память, или я ошибаюсь? |
|
![]() |
![]() |
![]() |
#8 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
1. динамический массив это ВСЕГДА ссылка (также как и TObject) и мы можем передавать и присваивать ее БЕЗ дублирования массивов.
2. выделять память по массив лучше сразу с запасом или по крайней мере порциями. Как это применить? пишем 3-5 (столько сколько надо) функций поиска и авто дополнения(при неуспешном поиске) ВСЕХ наших массивов. c результатом в виде найденной Record нужного типа. Код:
Код:
Код:
потому что нам теперь НЕ НУЖНЫ комментарии (оставшиеся в основном коде!) а еще потому что теперь можно на самом деле обойтись и меньшим числом функций и типов данных, но об этом как нибудь в другой раз (упрощать работающую программу лучше понемногу).
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 10.09.2015 в 13:49. |
![]() |
![]() |
![]() |
#10 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А кстати Евгений прав, перезапрашивать память это дорого по скорости получается.
I'm learning to live...
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатели и динамические массивы | Placebo228 | Общие вопросы C/C++ | 4 | 07.11.2012 16:15 |
Указатели и динамические массивы С++ | Лилия396 | Помощь студентам | 0 | 14.05.2012 18:00 |
Динамические массивы и указатели | GrihaI | Общие вопросы C/C++ | 5 | 30.05.2010 17:52 |
Указатели и динамические массивы | iiunbreakableii | Общие вопросы Delphi | 7 | 04.09.2009 14:43 |
Указатели и динамические массивы. | Airou | Общие вопросы C/C++ | 5 | 16.01.2009 19:05 |