Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Господа! поделитесь опытом. Вопрос о том как в WINDOWS организовать использование оперативки. Дело в том, что я почти 10 лет получаю зарлату не за программирование, но при этом, то и дело, писал программы на "DOS_овском" PASCAL_е(BP7). Этого хватало пока база была на FOXPRO. Выкладываешь ярлык на рабочий стол, выделяешь в свойствах EMS, запускаешь программу и то что официальная программа выполняла за 3-5 часов проходит за 10-15 минут. Плюс к тому, получаешь любые варианты выборки и анализа, которых нет в основном проекте. Собственные наработки позволяли кодировать за несколько часов-дней (главное идея!). Теперь база на SQL плюс BASIC. Поставил у себя DELPHI и BUILDER C++, сделал вывод, что "творить" надо на дельфи, а потом смотреть как это будет на CPP. Пора начинать, но как в новых (виндовых) условиях рационально использовать оперативку? Раньше GETMEM_ом брал в основной памяти под буфер размером 3 записи на каждый файл, буфер 16К для индексирования, все остальное делил между файлами по принципу: короткий файл (справочник) полностью, остальные пропорционально заданному при описании минимальному числу записей. Все это заполнялось и выбиралось при помощи указателя и специальной функции, которая сдвигает его, а все файлы не типированы, открыты с буфером в 1 байт (кроме индексных). ООП - технологии не применял, желание иметь под руками полную информацию приводило к написанию собственных процедур и функций взамен стандартных. Например: при нажатии клавиши всегда имеем код символа, номер клавиши, функциональную клавишу, флаги клавиатуры в момент нажатия (Если кому интересно, могу показать как); прямой вывод на экран,.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:28 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
ты в 3 строчки что те надо сказать могешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 11:53 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Супер вопрос! Можно делать как делал в ДОСе, но смысл? В win32 у тебя 2 гига памяти адресуемой, в прелелах нее делай шо хошь, например если ты читал файлы по 1 байту, то сделай отображение файла на память и будет у тебя просто массив, читаешь с него байт , а ОС сама прочитает с диска шо и где надо. Вообще много приятностей имеется, их использование зависит от информированости и поставленой задачи. Кстати по поводу дельфи, ничего против не имею, но документация по винде идет в примерах на C, на самом деле одно и тоже, тока вид сбоку :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 12:13 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Честно говоря это первый мой пост в И-НЕТ_е. Послал ответ, да видно что-то не срослось - не вижу на экране. Глубинная идея в том, чтобы меньше обращаться к диску, надо наилучшим образом юзать оперативку, и чтобы одна процедура обрабатывала хоть 5 хоть 500 таблиц на машине с памятью хоть 2 Гига, хоть 256 Мег. А чтоб это автоматизировать нужна какая-нибудь стратегия анализа памяти и ее распределения между данными. Вот с этой стратегией и хотелось определиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 14:51 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
такая стратегия уже есть. называется виртуальная память. и она реализована во всех более или менее современных операционках. В том числе и под win32 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:01 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
так зачем геморой себе отращивать, раз на sql перешли вот сервак, если толковы будет заботиться о памяти и рациональном использовании ресурсов. _______________________________________________________________ @Мы медленно запрягаем, быстро ездим, и сильно тормозим.@ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:21 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Я имел ввиду оперативную память, а виртуальная, как я понял - файл подкачки на диске. До 4 Гиг совсем не плохо, но не совсем то, хотя случай, если у компа 256 Мег, а хотелось 512 вероятно снимет с повестки дня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:38 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Кроме чужого, не всегда удобного SQL, хотелось своего анализа на станции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:49 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
maa_tmbЯ имел ввиду оперативную память, а виртуальная, как я понял - файл подкачки на диске. До 4 Гиг совсем не плохо, но не совсем то, хотя случай, если у компа 256 Мег, а хотелось 512 вероятно снимет с повестки дня. Не совсем так, как уже говорили, в Win32 для каждого процесса адресуемы свои 2 гига пространства. Каждый кусок этого поля может быть отображен на какой-нибудь внешний ресурс (физическая память, файл на диске). Когда вы выделяете память обычными функциями, Windows резервирует кусок адресного пространства, отображает в него регион физической памяти и дает вам. Любой файл отображенный в память похож на файл подкачки (этот файл -- частный случай), и поэтому вам не набо заботиться о физическом взаимодействии с диском, эти алгоритмы оптимально реализуются ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 16:51 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Спасибо Lelikk! Теперь понятно, что мой вопрос не столь актуален для современных ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2005, 17:22 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
maa_tmbмой вопрос не столь актуален для современных ОС.И в старых ОС всегда было актуальным правило: "Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает". Поэтому очень настороженно переходил на связку VB+SQL вместо C/C++: начитался о медлительности RTL VB. Увидев, что в бизнес-приложениях эти страшилки - для маленьких детей, увлекся оптимизацией SQL-запросов. Пройдя и это, понял, что оптимизацией тоже надо заниматься только тогда, когда ожидание результатов запроса вносит дискомфорт в работу пользователя. В остальных случаях следует стремиться к ясности (простоте) кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 14:23 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Processor maa_tmbмой вопрос не столь актуален для современных ОС.И в старых ОС всегда было актуальным правило: "Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает". Поэтому очень настороженно переходил на связку VB+SQL вместо C/C++: начитался о медлительности RTL VB. Увидев, что в бизнес-приложениях эти страшилки - для маленьких детей, увлекся оптимизацией SQL-запросов. Пройдя и это, понял, что оптимизацией тоже надо заниматься только тогда, когда ожидание результатов запроса вносит дискомфорт в работу пользователя. В остальных случаях следует стремиться к ясности (простоте) кода. Давай дружить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 14:41 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Processor... оптимизацией тоже надо заниматься только тогда, когда ожидание результатов запроса вносит дискомфорт в работу пользователя. В остальных случаях следует стремиться к ясности (простоте) кода.ДА! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 15:03 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Processor "Оптимизировать время исполнения надо всегда, а память - только тогда, когда её нехватает". ... оптимизацией тоже надо заниматься только тогда, когда ожидание результатов запроса вносит дискомфорт в работу пользователя. В остальных случаях следует стремиться к ясности (простоте) кода. Мне всегда казалось, что время исполнения зависит от оптимизации памяти, по крайней мере при частом обращении к зависимому файлу, и я стремился поступать так: для обрабатываемого файла приемлемый буфер, а те на которые он ссылается - максимально в оперативку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 16:35 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Вы сначала что-нибудь создайте, а потом будете оптимизировать. Не нужно бежать впереди паровоза. А если переходите с DOS, то помните, что Вы не один. И если уж на то пошло - распределением физической памяти занимается только Windows. Единственный вариант управлять ей самому - драйвер (не рекомендую). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 16:44 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
MLeonА если переходите с DOS, то помните, что Вы не один. И если уж на то пошло - распределением физической памяти занимается только Windows. Единственный вариант управлять ей самому - драйвер (не рекомендую). Раз не один, то тем более, пусть и другие почитают. Но тем не менее, возможно ли делать комбинированного клент - файл сервера? База в дюжину гигов, надо запустить сложный процесс, а если их несколько? Ясно, что все они пойдут на сервере, и будут идти более суток, а то и вовсе "подеруться". Так если скопировать часть таблиц на клиента, обработать, и толкнуть обратно на сервер. Конечно, это относится только к тяжелым процессам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 17:15 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
у Вас тада получится "сверхтолстый клиент", а это как минимум == трудность сопровождения (при изменении версии меняем не только на сервере, но и прыгаем по рабочим станциям) Вообще похооже на топик " *** vs клиент-сервер " из "Сравнения СУБД" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 18:48 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
maa_tmb Мне всегда казалось, что время исполнения зависит от оптимизации памяти, по крайней мере при частом обращении к зависимому файлу, и я стремился поступать так: для обрабатываемого файла приемлемый буфер, а те на которые он ссылается - максимально в оперативку.Имейте ввиду еще и то, что нынешний компьютер на celeron PII-1200 с 256 RAM (я беру не самый быстрый), в ~500 раз быстрее тех 286 или 386 с 0.5MB памяти, на которых мы гоняли turbo-pascal. Правда винда успешно сокращает этот разрыв ;) но тем не менее, оптимизация которая делалась тогда, в наши дни совершенно неактуальна. Нынешние диски, это совсем не то, что раньше. Последний раз, когда я замерял свою супер-пупер-программу, делающую сортировку большого текстового файла на диске, оказалось, что на диске получается быстрее, чем на виртуальном диске в памяти. Вероятно, кеш дисковой памяти работал лучше, чем организация виртуального диска ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 19:03 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Если коротко, Вы абсолютно правы в желании перейти с BP на Delphi. Причем, по крайней мере если Вы не собираетесь заниматься программированием профессионально, двигать на билдер я бы не советовал. Впрочем - и так не советовал бы :) Главное же - при этом переходе придется забыть о накопленных технических приемах и учиться работать именно на "дельфе под виндой". Со времен выхода BP7 все настолько изменилось, что любые привычки BP7+DOS можно априори считать неудачными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2005, 19:05 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
S.G. Нынешние диски, это совсем не то, что раньше. Последний раз, когда я замерял свою супер-пупер-программу, делающую сортировку большого текстового файла на диске, оказалось, что на диске получается быстрее, чем на виртуальном диске в памяти. Вероятно, кеш дисковой памяти работал лучше, чем организация виртуального диска ;) Да, в EMS все работает не слишком быстро, скорость на уровне современного винта (поэтому сортировку делал кусками в пределах Conventional quicksort_ом, а затем сливал в один файл). Сейчас об этом у людей вообще голова не болит. Хорошая новость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 08:35 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
softwarer Главное же - при этом переходе придется забыть о накопленных технических приемах и учиться работать именно на "дельфе под виндой". Со времен выхода BP7 все настолько изменилось, что любые привычки BP7+DOS можно априори считать неудачными. Вот данный топик и помогает мне развернуть мозги (думать иначе). За что спасибо всем участникам. NotGonnaGetUs и S.G. тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.05.2005, 08:53 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
maa_tmb 1. База в дюжину гигов, надо запустить сложный процесс... 2. ...а если их несколько? Ясно, что все они пойдут на сервере, и будут идти более суток... 3. ...а то и вовсе "подеруться". Так если скопировать часть таблиц на клиента, обработать, и толкнуть обратно на сервер... 4. Конечно, это относится только к тяжелым процессам. (прошу прощения за нумерацию, но "divide et impera" - не последний инструмент анализа.) 1,2. SQL Server и "затачивается" для ведения таких баз, а для оптимизации "сложных процессов" есть серверные инструменты, напр.: Код: plaintext 1. 2. 3. 4. 4. В одной из старых книг приводилось "правило Парето в программировании":5% кода занимают 95% процессорного времени.Эти-то 5% и требуется проанализировать на предмет оптимизации. Кроме того, количество тяжелых запросов выражается, наверное, долями процента в объеме всей работы сервера. И не факт, что все они должны выполняться в реальном времени. А ведь для реального времени существуют методы асинхронного выполнения клиент-серверных приложений. И здесь ООП делает Вашу работу результативной и конечной во времени! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2005, 14:05 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
ProcessorКроме того, количество тяжелых запросов выражается, наверное, долями процента в объеме всей работы сервера. Это очень произвольное утверждение. Доля тяжелых запросов определяется исключительно тем, как именно хотят эксплуатировать сервер. Для OLTP с кучей пользователей и парой аналитиков количество тяжелых запросов действительно невелико. Для любой базы знаний таких запросов будет близко к 100%. А учитывая специфику - база, для запросов из которой постоянно пишутся программы, и есть желание их оптимизировать - более вероятен как раз второй вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 12:50 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
softwarerДоля тяжелых запросов определяется исключительно тем, как именно хотят эксплуатировать сервер......и те, кто будет эксплуатировать его, знакомы с азами теории массового обслуживания. В таких тяжёлых случаях выбирается железка, производительность которой обеспечит комфортное время ожидания реакции сервера. А учитывая специфику - база, для запросов из которой постоянно пишутся программы, и есть желание их оптимизировать...Из поста maa_tmb специфика никак не просматривается, а вот желание оптимизировать аргументировано. И рекомендации MLeonНе нужно бежать впереди паровоза. А если переходите с DOS, то помните, что Вы не один - наиболее своевременны. К дискуссии о частоте тяжелых специфических запросов можно будет вернуться позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 15:46 |
|
||
|
Об использовании оперативной памяти
|
|||
|---|---|---|---|
|
#18+
Processor...и те, кто будет эксплуатировать его, знакомы с азами теории массового обслуживания Не бросайтесь умными словами. С чего Вы взяли, что этот гипотетический сервер предназначен для массового обслуживания? ProcessorИз поста maa_tmb специфика никак не просматривается, Предметник, регулярные запросы на несколько часов, FoxPro (вкупе с тяжелыми запросами - почти стопроцентно означает мало пользователей). Имхо довольно типичная картина. Плюс, сами по себе факты, что человек кодирует для себя на довольно высоком уровне и только сейчас чуть отходит от ДОСа - очень похоже на госпредприятие, компьютеризированное в конце восьмидесятых - начале девяностых и там и оставшееся. Совет спокойно разбираться в новом - безусловно, оптимален. ProcessorК дискуссии о частоте тяжелых специфических запросов можно будет вернуться позже. К дискуссии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2005, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=33072362&tid=1347569]: |
0ms |
get settings: |
8ms |
get forum list: |
26ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 263ms |
| total: | 531ms |

| 0 / 0 |
