powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об использовании оперативной памяти
25 сообщений из 39, страница 1 из 2
Об использовании оперативной памяти
    #33068977
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа! поделитесь опытом.
Вопрос о том как в WINDOWS организовать использование оперативки.
Дело в том, что я почти 10 лет получаю зарлату не за программирование,
но при этом, то и дело, писал программы на "DOS_овском" PASCAL_е(BP7).
Этого хватало пока база была на FOXPRO. Выкладываешь ярлык на рабочий
стол, выделяешь в свойствах EMS, запускаешь программу и то что
официальная программа выполняла за 3-5 часов проходит за 10-15 минут.
Плюс к тому, получаешь любые варианты выборки и анализа, которых нет
в основном проекте.
Собственные наработки позволяли кодировать за несколько часов-дней
(главное идея!). Теперь база на SQL плюс BASIC.
Поставил у себя DELPHI и BUILDER C++, сделал вывод, что "творить"
надо на дельфи, а потом смотреть как это будет на CPP.
Пора начинать, но как в новых (виндовых) условиях рационально использовать оперативку?
Раньше GETMEM_ом брал в основной памяти под буфер размером 3 записи
на каждый файл, буфер 16К для индексирования, все остальное делил
между файлами по принципу: короткий файл (справочник) полностью,
остальные пропорционально заданному при описании минимальному числу
записей.
Все это заполнялось и выбиралось при помощи указателя и специальной
функции, которая сдвигает его, а все файлы не типированы, открыты
с буфером в 1 байт (кроме индексных).
ООП - технологии не применял, желание иметь под руками полную
информацию приводило к написанию собственных процедур и функций взамен
стандартных. Например: при нажатии клавиши всегда имеем код символа, номер клавиши, функциональную клавишу, флаги клавиатуры в момент нажатия (Если кому интересно, могу показать как); прямой вывод на экран,..
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33069053
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты в 3 строчки что те надо сказать могешь?
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33069134
Marmeladik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Супер вопрос! Можно делать как делал в ДОСе, но смысл? В win32 у тебя 2 гига памяти адресуемой, в прелелах нее делай шо хошь, например если ты читал файлы по 1 байту, то сделай отображение файла на память и будет у тебя просто массив, читаешь с него байт , а ОС сама прочитает с диска шо и где надо. Вообще много приятностей имеется, их использование зависит от информированости и поставленой задачи. Кстати по поводу дельфи, ничего против не имею, но документация по винде идет в примерах на C, на самом деле одно и тоже, тока вид сбоку :-)
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33069660
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря это первый мой пост в И-НЕТ_е. Послал ответ, да видно что-то не срослось - не вижу на экране.
Глубинная идея в том, чтобы меньше обращаться к диску, надо наилучшим образом юзать оперативку, и чтобы одна процедура обрабатывала хоть 5 хоть 500 таблиц на машине с памятью хоть 2 Гига, хоть 256 Мег. А чтоб это автоматизировать нужна какая-нибудь стратегия анализа памяти и ее распределения между данными. Вот с этой стратегией и хотелось определиться.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33069943
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
такая стратегия уже есть. называется виртуальная память. и она реализована во всех более или менее современных операционках. В том числе и под win32
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33070022
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так зачем геморой себе отращивать, раз на sql перешли вот сервак, если толковы будет заботиться о памяти и рациональном использовании ресурсов.
_______________________________________________________________
@Мы медленно запрягаем, быстро ездим, и сильно тормозим.@
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33070082
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду оперативную память, а виртуальная, как я понял - файл подкачки на диске. До 4 Гиг совсем не плохо, но не совсем то, хотя случай, если у компа 256 Мег, а хотелось 512 вероятно снимет с повестки дня.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33070125
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме чужого, не всегда удобного SQL, хотелось своего анализа на станции.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33070133
Фотография Lelikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maa_tmbЯ имел ввиду оперативную память, а виртуальная, как я понял - файл подкачки на диске. До 4 Гиг совсем не плохо, но не совсем то, хотя случай, если у компа 256 Мег, а хотелось 512 вероятно снимет с повестки дня.

Не совсем так, как уже говорили, в Win32 для каждого процесса адресуемы свои 2 гига пространства. Каждый кусок этого поля может быть отображен на какой-нибудь внешний ресурс (физическая память, файл на диске). Когда вы выделяете память обычными функциями, Windows резервирует кусок адресного пространства, отображает в него регион физической памяти и дает вам. Любой файл отображенный в память похож на файл подкачки (этот файл -- частный случай), и поэтому вам не набо заботиться о физическом взаимодействии с диском, эти алгоритмы оптимально реализуются ОС.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33070265
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо Lelikk! Теперь понятно, что мой вопрос не столь актуален для современных ОС.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072184
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maa_tmbмой вопрос не столь актуален для современных ОС.И в старых ОС всегда было актуальным правило:
"Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает".
Поэтому очень настороженно переходил на связку VB+SQL вместо C/C++:
начитался о медлительности RTL VB.
Увидев, что в бизнес-приложениях эти страшилки - для маленьких детей,
увлекся оптимизацией SQL-запросов.
Пройдя и это, понял, что оптимизацией тоже надо заниматься только тогда,
когда ожидание результатов запроса вносит дискомфорт в работу пользователя.
В остальных случаях следует стремиться к ясности (простоте) кода.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072270
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor maa_tmbмой вопрос не столь актуален для современных ОС.И в старых ОС всегда было актуальным правило:
"Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает".
Поэтому очень настороженно переходил на связку VB+SQL вместо C/C++:
начитался о медлительности RTL VB.
Увидев, что в бизнес-приложениях эти страшилки - для маленьких детей,
увлекся оптимизацией SQL-запросов.
Пройдя и это, понял, что оптимизацией тоже надо заниматься только тогда,
когда ожидание результатов запроса вносит дискомфорт в работу пользователя.
В остальных случаях следует стремиться к ясности (простоте) кода.

Давай дружить :)
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072362
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor... оптимизацией тоже надо заниматься только тогда,
когда ожидание результатов запроса вносит дискомфорт в работу пользователя.
В остальных случаях следует стремиться к ясности (простоте) кода.ДА! :)
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072704
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor "Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает".
... оптимизацией тоже надо заниматься только тогда,
когда ожидание результатов запроса вносит дискомфорт в работу пользователя.
В остальных случаях следует стремиться к ясности (простоте) кода.

Мне всегда казалось, что время исполнения зависит от оптимизации памяти,
по крайней мере при частом обращении к зависимому файлу, и я стремился поступать так: для обрабатываемого файла приемлемый буфер, а те на которые он ссылается - максимально в оперативку.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072739
MLeon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы сначала что-нибудь создайте, а потом будете оптимизировать. Не нужно бежать впереди паровоза. А если переходите с DOS, то помните, что Вы не один. И если уж на то пошло - распределением физической памяти занимается только Windows. Единственный вариант управлять ей самому - драйвер (не рекомендую).
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33072836
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MLeonА если переходите с DOS, то помните, что Вы не один. И если уж на то пошло - распределением физической памяти занимается только Windows. Единственный вариант управлять ей самому - драйвер (не рекомендую).
Раз не один, то тем более, пусть и другие почитают.
Но тем не менее, возможно ли делать комбинированного клент - файл сервера?
База в дюжину гигов, надо запустить сложный процесс, а если их несколько? Ясно, что все они пойдут на сервере, и будут идти более суток, а то и вовсе "подеруться". Так если скопировать часть таблиц на клиента, обработать, и толкнуть обратно на сервер. Конечно, это относится только к тяжелым процессам.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33073115
...note
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у Вас тада получится "сверхтолстый клиент", а это как минимум == трудность сопровождения
(при изменении версии меняем не только на сервере, но и прыгаем по рабочим станциям)

Вообще похооже на топик " *** vs клиент-сервер " из "Сравнения СУБД"
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33073144
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maa_tmb
Мне всегда казалось, что время исполнения зависит от оптимизации памяти,
по крайней мере при частом обращении к зависимому файлу, и я стремился поступать так: для обрабатываемого файла приемлемый буфер, а те на которые он ссылается - максимально в оперативку.Имейте ввиду еще и то, что нынешний компьютер на celeron PII-1200 с 256 RAM (я беру не самый быстрый), в ~500 раз быстрее тех 286 или 386 с 0.5MB памяти, на которых мы гоняли turbo-pascal. Правда винда успешно сокращает этот разрыв ;) но тем не менее, оптимизация которая делалась тогда, в наши дни совершенно неактуальна.
Нынешние диски, это совсем не то, что раньше. Последний раз, когда я замерял свою супер-пупер-программу, делающую сортировку большого текстового файла на диске, оказалось, что на диске получается быстрее, чем на виртуальном диске в памяти. Вероятно, кеш дисковой памяти работал лучше, чем организация виртуального диска ;)
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33073148
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если коротко, Вы абсолютно правы в желании перейти с BP на Delphi. Причем, по крайней мере если Вы не собираетесь заниматься программированием профессионально, двигать на билдер я бы не советовал. Впрочем - и так не советовал бы :)

Главное же - при этом переходе придется забыть о накопленных технических приемах и учиться работать именно на "дельфе под виндой". Со времен выхода BP7 все настолько изменилось, что любые привычки BP7+DOS можно априори считать неудачными.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33073599
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.
Нынешние диски, это совсем не то, что раньше. Последний раз, когда я замерял свою супер-пупер-программу, делающую сортировку большого текстового файла на диске, оказалось, что на диске получается быстрее, чем на виртуальном диске в памяти. Вероятно, кеш дисковой памяти работал лучше, чем организация виртуального диска ;)
Да, в EMS все работает не слишком быстро, скорость на уровне современного винта (поэтому сортировку делал кусками в пределах Conventional quicksort_ом, а затем сливал в один файл). Сейчас об этом у людей вообще голова не болит. Хорошая новость.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33073624
maa_tmb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Главное же - при этом переходе придется забыть о накопленных технических приемах и учиться работать именно на "дельфе под виндой". Со времен выхода BP7 все настолько изменилось, что любые привычки BP7+DOS можно априори считать неудачными.
Вот данный топик и помогает мне развернуть мозги (думать иначе). За что спасибо всем участникам. NotGonnaGetUs и S.G. тоже.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33078970
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maa_tmb 1. База в дюжину гигов, надо запустить сложный процесс...
2. ...а если их несколько? Ясно, что все они пойдут на сервере, и будут идти более суток...
3. ...а то и вовсе "подеруться". Так если скопировать часть таблиц на клиента, обработать, и толкнуть обратно на сервер...
4. Конечно, это относится только к тяжелым процессам. (прошу прощения за нумерацию, но "divide et impera" - не последний инструмент анализа.)
1,2. SQL Server и "затачивается" для ведения таких баз, а для оптимизации "сложных процессов" есть серверные инструменты, напр.:
Код: plaintext
1.
2.
3.
4.
SQL Server Query Analyzer is an interactive, graphical tool 
that enables a database administrator or developer 
to write queries, execute multiple queries simultaneously, 
view results, analyze the query plan, and receive assistance 
to improve the query performance.
3. Если "скопировать, обработать и толкнуть обратно ", то обязательно "подеруться"!
4. В одной из старых книг приводилось "правило Парето в программировании":5% кода занимают 95% процессорного времени.Эти-то 5% и требуется проанализировать на предмет оптимизации.
Кроме того, количество тяжелых запросов выражается, наверное, долями процента в объеме всей работы сервера.
И не факт, что все они должны выполняться в реальном времени.
А ведь для реального времени существуют методы асинхронного выполнения клиент-серверных приложений.
И здесь ООП делает Вашу работу результативной и конечной во времени!
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33081910
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProcessorКроме того, количество тяжелых запросов выражается, наверное, долями процента в объеме всей работы сервера.
Это очень произвольное утверждение. Доля тяжелых запросов определяется исключительно тем, как именно хотят эксплуатировать сервер. Для OLTP с кучей пользователей и парой аналитиков количество тяжелых запросов действительно невелико. Для любой базы знаний таких запросов будет близко к 100%. А учитывая специфику - база, для запросов из которой постоянно пишутся программы, и есть желание их оптимизировать - более вероятен как раз второй вариант.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33082412
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerДоля тяжелых запросов определяется исключительно тем, как именно хотят эксплуатировать сервер......и те, кто будет эксплуатировать его, знакомы с азами теории массового обслуживания.
В таких тяжёлых случаях выбирается железка, производительность которой обеспечит комфортное время ожидания реакции сервера.
А учитывая специфику - база, для запросов из которой постоянно пишутся программы, и есть желание их оптимизировать...Из поста maa_tmb специфика никак не просматривается, а вот желание оптимизировать аргументировано.
И рекомендации MLeonНе нужно бежать впереди паровоза. А если переходите с DOS, то помните, что Вы не один - наиболее своевременны.
К дискуссии о частоте тяжелых специфических запросов можно будет вернуться позже.
...
Рейтинг: 0 / 0
Об использовании оперативной памяти
    #33082435
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Processor...и те, кто будет эксплуатировать его, знакомы с азами теории массового обслуживания
Не бросайтесь умными словами. С чего Вы взяли, что этот гипотетический сервер предназначен для массового обслуживания?

ProcessorИз поста maa_tmb специфика никак не просматривается,
Предметник, регулярные запросы на несколько часов, FoxPro (вкупе с тяжелыми запросами - почти стопроцентно означает мало пользователей). Имхо довольно типичная картина. Плюс, сами по себе факты, что человек кодирует для себя на довольно высоком уровне и только сейчас чуть отходит от ДОСа - очень похоже на госпредприятие, компьютеризированное в конце восьмидесятых - начале девяностых и там и оставшееся.

Совет спокойно разбираться в новом - безусловно, оптимален.

ProcessorК дискуссии о частоте тяжелых специфических запросов можно будет вернуться позже.
К дискуссии?
...
Рейтинг: 0 / 0
25 сообщений из 39, страница 1 из 2
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Об использовании оперативной памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]