Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

Какое значение окажется в итоге в Caption?   Найти похожие ветки 

 
Loginov Dmitry ©   (2006-11-14 16:21) [0]


procedure TForm1.Button1Click(Sender: TObject);
var
 I: Integer;
begin
 for I := 1 to 20000 do
 begin
   with TBitmap.Create do
   begin
     Width := 1;
     Height := 1;
   end;
   Caption := IntToStr(I);
 end;
end;


 
Anatoly Podgoretsky ©   (2006-11-14 16:25) [1]

> Loginov Dmitry  (14.11.2006 16:21:00)  [0]

У тебя Дельфи нет, тогда нафига тебе ответ?


 
RWolf ©   (2006-11-14 16:33) [2]

хм, весело :)


 
Dimka Maslov ©   (2006-11-14 16:33) [3]

20000
Другой вопрос, зачем всё это?


 
Юрий ©   (2006-11-14 16:36) [4]

И зачем 20000 раз ЭТО делать.


 
clickmaker ©   (2006-11-14 16:36) [5]

под какой осью?


 
_uw_   (2006-11-14 16:37) [6]

Да не получается столько раз.


 
Jeer ©   (2006-11-14 16:38) [7]

Это готовится новый клон Matrix.
Там будут исключительно оптические вычисления, на основе TBitmap.

Intel SPL отдыхает.


 
Сергей М. ©   (2006-11-14 16:39) [8]


> Loginov Dmitry ©   (14.11.06 16:21)
>
>


Любое <= 20000

Только не спрашивай почему - это страшное дело)


 
RWolf ©   (2006-11-14 16:41) [9]

вопрос - что ограничивает это число?
вроде, работаем все давно уже не под Win"9x.


 
Игорь Шевченко ©   (2006-11-14 16:43) [10]

...он себе и лоб расшибет


 
Jeer ©   (2006-11-14 16:43) [11]

Каждый битмап - отдельная вычислительная ячейка, итого - 20 тыс. оптических процессоров - вещь !


 
oldman ©   (2006-11-14 16:46) [12]


> Сергей М. ©   (14.11.06 16:39) [8]
>
> > Loginov Dmitry ©   (14.11.06 16:21)
> >
> >
>
>
> Любое <= 20000
>
> Только не спрашивай почему - это страшное дело)


Не любое, заметь, а любое целое!


 
clickmaker ©   (2006-11-14 16:47) [13]


> вроде, работаем все давно уже не под Win"9x

уверен?


 
oldman ©   (2006-11-14 16:47) [14]

Блин!
Любое целое положительное.


 
RWolf ©   (2006-11-14 16:49) [15]


> clickmaker

Касательно большинства - да. Остальные не в счёт, бо под 9х полноценно разрабатывать на Delphi невозможно.


 
oldman ©   (2006-11-14 16:52) [16]


> RWolf ©   (14.11.06 16:49) [15]
> под 9х полноценно разрабатывать на Delphi невозможно


Бабушке своей расскажи...


 
Anatoly Podgoretsky ©   (2006-11-14 16:54) [17]

> oldman  (14.11.2006 16:52:16)  [16]

Так он про себя


 
clickmaker ©   (2006-11-14 16:54) [18]


>  [15] RWolf ©   (14.11.06 16:49)

разрабатывать сложно, но юзать-то можно. Кроме того, тут не все зарабатывают себе дельфями на хлеб с маслом. Может тут и 1Сники есть, я ж не знаю...


 
RWolf ©   (2006-11-14 16:54) [19]

а чего рассказывать, сам год на такой конфиге сидел, и знаю, что это такое. Когда чуть лишнюю форму открыл - и привет, рестарт.


 
oldman ©   (2006-11-14 16:57) [20]


> RWolf ©   (14.11.06 16:54) [19]
> Когда чуть лишнюю форму открыл - и привет, рестарт.


Так это не 9х виновата... :)


 
RWolf ©   (2006-11-14 16:58) [21]


> oldman

Именно 9х. Я знаю, о чем говорю.


 
Loginov Dmitry ©   (2006-11-14 16:59) [22]

Споткнулся недавно на подобных граблях.
Работает прога на ХР - все ОК,
Тестирую на Win98 - вылетает.
Фактически тестирую компонент для визуализации электрокардиограммы. Определяю пики всех зубцов R. "Подсвечиваю" их путем построения вертикальных линий. Каждая линия - это объект, наследуемый от TPaintBox и в каждом объекте создается 2 битмапа.
В Win98 при создании 607-ой линии прога вылетает. Да так, что только reset спасает.

У ХР лимит на битмапы значительно выше: удается создать целых 4980 линий (около 9960 битмапов).

Вывод - TBitmap - весьма ценный объект, и разбрасываться подобными объектами налево и направо нерационально, и даже опасно.


 
clickmaker ©   (2006-11-14 16:59) [23]


> Когда чуть лишнюю форму открыл - и привет, рестарт

а вот нет худа без добра! Учишься не плодить формы без надобности и экономить каждый хэндл. А то избаловались совсем: AWE, 64-bit, винты по 200 гигов... :)


 
Anatoly Podgoretsky ©   (2006-11-14 17:00) [24]

> oldman  (14.11.2006 16:57:20)  [20]

Если подумать, то можно догадаться кто.


 
clickmaker ©   (2006-11-14 17:00) [25]


> Вывод - TBitmap - весьма ценный объект, и разбрасываться
> подобными объектами налево и направо нерационально, и даже
> опасно

А не было бы 9х, и не сделал бы такой ценный вывод.
Резюме: Win9x - рулеззз :))


 
RWolf ©   (2006-11-14 17:02) [26]


> clickmaker

это да, лишних форм не рисовать, лишних программ не запускать, и вообще резких движений желательно не делать :) так под 9х и живется.


 
Anatoly Podgoretsky ©   (2006-11-14 17:03) [27]

> Loginov Dmitry  (14.11.2006 16:59:22)  [22]

Может это того, алгоритмы пересмотреть?


 
Anatoly Podgoretsky ©   (2006-11-14 17:04) [28]

> clickmaker  (14.11.2006 16:59:23)  [23]

> винты по 200 гигов

Ты чего про такое старье, пацаны засмеют.


 
Anatoly Podgoretsky ©   (2006-11-14 17:05) [29]

> RWolf  (14.11.2006 17:02:26)  [26]

Не стоит хаять, нормальная система


 
Prohodil Mimo ©   (2006-11-14 17:05) [30]

RWolf ©   (06.11.14 16:54) [19]

а я пять лет на 98 отработал, и проекты не маленькие открывал, почти все формы за раз, да ещё и программу запускал, одновременно, и ничего, не вылетало.

Прежде чем обвинять кого-либо или что-либо, не лишним будет посмотреть в зеркало, мож и причина выявится.


 
Игорь Шевченко ©   (2006-11-14 17:05) [31]

А что, информация о том, что в любой системе нельзя создать более 16384 объектов GDI для кого-то является страшным секретом ?


 
clickmaker ©   (2006-11-14 17:07) [32]


> [31] Игорь Шевченко ©   (14.11.06 17:05)

теперь уже нет ))


 
RWolf ©   (2006-11-14 17:08) [33]

Анатолий, у этой нормальной системы в наличии родовая травма - по 64 кБ под ресурсы GDI (и system и kernel тоже). И сколько-нибудь сложный интерфейс на экране, особенно для нескольких приложений одновременно, держать не представляется возможным. И виснет она у Loginov Dmitry именно по этой причине.


 
oldman ©   (2006-11-14 17:09) [34]


> Игорь Шевченко ©   (14.11.06 17:05) [31]


У меня вот никогда не было необходимости плодить их в таком диком количестве.
Потому данную инфу я когда пропустил мимо. И что?
У меня до сих пор нет необходимости плодить их в таком количестве.


 
RWolf ©   (2006-11-14 17:09) [35]


> Prohodil Mimo

не верю.


 
Игорь Шевченко ©   (2006-11-14 17:10) [36]

oldman ©   (14.11.06 17:09) [34]

Я полагаю, разработчики Windows тоже считали, что пложить их в таком количестве никому в ясном уме и твердой памяти не придет в голову. Вот и ограничили...


 
clickmaker ©   (2006-11-14 17:11) [37]


> И сколько-нибудь сложный интерфейс на экране, особенно для
> нескольких приложений одновременно, держать не представляется
> возможным

Я под 98 OSR1 запускал одновременно MIDI-секвенсор, софтовый синтюк и 2 аудио-редактора: форж и самплитуд. При этом еще писал с микрофона.
Не зависла не разу


 
oldman ©   (2006-11-14 17:12) [38]


> Игорь Шевченко ©   (14.11.06 17:10) [36]


остается вопрос, почему предел 2^14, а не 2^16 ?..


 
RWolf ©   (2006-11-14 17:13) [39]


> Я под 98 OSR1 запускал одновременно MIDI-секвенсор, софтовый
> синтюк и 2 аудио-редактора: форж и самплитуд. При этом еще
> писал с микрофона.Не зависла не разу

А я запускал ворд (1 шт), эксплорер (1 шт), открытый в дельфи проект приличных размеров и аську. Висла, как миленькая, по причине исчерпания этих самых ресурсов. О чем недвусмысленно сигналил монитор этих самых ресурсов (в дистрибутиве есть, погоняйте для интереса).


 
Игорь Шевченко ©   (2006-11-14 17:14) [40]

oldman ©   (14.11.06 17:12) [38]

Потому что два бита отводятся под служебные цели, например, под тип объекта. Хэндлы GDI - они же 16-битные (для совместимости с программами для Win16)


 
Плохиш ©   (2006-11-14 17:15) [41]


> RWolf ©   (14.11.06 17:13) [39]


> открытый в дельфи проект приличных размеров

Проблема, скорее всего, в месте откуда руки растут.


 
RWolf ©   (2006-11-14 17:17) [42]


> Плохиш

Открытый, а не запущенный. Так что руки тут ни при чем.


 
Rouse_ ©   (2006-11-14 17:17) [43]


> А что, информация о том, что в любой системе нельзя создать
> более 16384 объектов GDI для кого-то является страшным секретом
> ?

MSDN думает иначе :)
http://msdn2.microsoft.com/en-us/library/ms724291.aspx
Говорит памятью ограничено :)


 
oldman ©   (2006-11-14 17:18) [44]

ворд (1 шт), эксплорер (1 шт), открытый в дельфи проект приличных размеров и аську.

Меняем все это на "мой проект и 3 эксплорера"...

Далее: [41]


 
Prohodil Mimo ©   (2006-11-14 17:21) [45]

RWolf ©   (06.11.14 17:09) [35]

твоё право.

возможности не столько в операционке, сколько в голове разработчика.

я начинал с программ под ДОСом, а потому мне и в Вин 3.11 ресурсов и возможностей было больше чем предостаточно, не говоря уже об Вин 95 и выше. Я до сих пор стараюсь использовать как можно меньше ресурсов. Потому и программы мои идут на ооочень слабых машинах, и форм я могу открыть побольше чем те, "кому ресурсов не хватает".


 
RWolf ©   (2006-11-14 17:26) [46]


> oldman

не уяснил этой глубокой мысли.


> Prohodil Mimo ©   (14.11.06 17:21) [45]
> RWolf ©   (06.11.14 17:09) [35]твоё право.возможности не
> столько в операционке, сколько в голове разработчика.

Ну, ограничивал ты себя в средствах. И я ограничивал, куда деваться. Но лучше уж сделать так, чтобы этого дурного ограничения не было, и работать под NT.


 
Игорь Шевченко ©   (2006-11-14 17:27) [47]

Rouse_ ©   (14.11.06 17:17) [43]


> MSDN думает иначе :)


> Говорит памятью ограничено :)


MSDN, по твоей ссылке, говорит вполне недвусмысленно:

"There is a theoretical limit of 65,536 GDI handles per session. However, the maximum number of GDI handles that can be opened per session is usually lower, since it is affected by available memory.

Windows 2000:  There is a limit of 16,384 GDI handles per session."

А Фэнь Юань в своем бестселлере еще и пишет, откуда берется это число.


 
oldman ©   (2006-11-14 17:29) [48]


> RWolf ©   (14.11.06 17:26) [46]
>
> > oldman
>
> не уяснил этой глубокой мысли.


У меня сейчас открыто 3 окна IE, Word, Excel, проект компилиться (ессно, что он тоже открыт) и диск режется.
Заметь, я в форуме. Не вишу. Да еще и отвечаю довольно шустро.

На машине МЕ.


 
TUser ©   (2006-11-14 17:31) [49]

Чегонибудьлик даже невооруженным глазом видно. Я так уже давно не пишу, хотя совсем недвно написал на автомате даже такое
L := TStrings.Create
L.Add()
как понял в чем глюк - покраснел на всю комнату :)


 
clickmaker ©   (2006-11-14 17:32) [50]

соббсно ватокатание ни о чем. Есть ведь разные категории прог. Одно дела ERP-система какая-нить, с веб-сервисами там, сиквелами и соапами. Ну так тут никто не спорит, что 95-я ее не потянет, НТ-4 как минимум нужна.
А если пасьянс зависнет с мессагой "не могу нарисовать карту, поскольку закончился GDI", из-за того, что некий Вася каждую черву и бубну не руками рисует, а PaintBox"ом - это уже не дело, ведь так?


 
RWolf ©   (2006-11-14 17:32) [51]


> oldman ©   (14.11.06 17:29) [48]

я и не утверждаю, что этот набор должен обязательно упасть.
Просто следи за ресурсами.


 
TIF ©   (2006-11-14 17:34) [52]


> procedure TForm1.Button1Click(Sender: TObject);
> var
>  I: Integer;
> begin
>  for I := 1 to 20000 do
>  begin
>    with TBitmap.Create do
>    begin
>      Width := 1;
>      Height := 1;
>    end;
>    Caption := IntToStr(I);
>  end;
> end;


Программа для взлома Windows Vista!?!?!?!?!?!?!?!?


 
TIF ©   (2006-11-14 17:35) [53]

или тестирование процессора? Так процессор-то сгорит :-(


 
Prohodil Mimo ©   (2006-11-14 17:37) [54]

RWolf ©   (06.11.14 17:26) [46]
Но лучше уж сделать так, чтобы этого дурного ограничения не было, и работать под NT.


вот из-за таких как ты, программы всё более и более требовательны к ресурсам и железу, хотя могли бы быть намного легковеснее и менее требовательны.
но спор бесполезен... а потому я его прекращаю... подрастёшь, надеюсь, сам поймёшь.


 
Loginov Dmitry ©   (2006-11-14 17:40) [55]

Anatoly Podgoretsky ©   (14.11.06 17:03) [27]
Может это того, алгоритмы пересмотреть?


Это лечится за 5 минуть. Тут главное - узнать о подобных граблях и не наступать на них больше.

Игорь Шевченко ©   (14.11.06 17:05) [31]
А что, информация о том, что в любой системе нельзя создать более 16384 объектов GDI для кого-то является страшным секретом ?


Всего в ХР мне удалось создать 61900 объектов типа TBitmap. Для этого пришлось запустить 7 экземпляров приложения, в каждом из которых создается 9900 битмапов (больше создать не получается). При работе последнего приложения на 2500-м битмапе вылетела ошибка "Нехватка ресурсов". Сразу же за этим вылетел Magic Forum и зависла Delphi :)


 
TIF ©   (2006-11-14 17:40) [56]


> надеюсь, сам поймёшь.


не поймёт. он уже вместе с процессором, программоё и компом взорвался: пробки в городе повышибало %- |


 
Percent   (2006-11-14 17:41) [57]

Каждая линия - это объект, наследуемый от TPaintBox и в каждом объекте создается 2 битмапа.

"Чиста правильные пацаны" наследуют от TGraphicControl. :-)
Группу (массив) используемых растров следует сделать общим для всех вертикальных разделителей.

Вывод - TBitmap - весьма ценный объект, и разбрасываться подобными объектами налево и направо нерационально, и даже опасно.

См. TBitmap.Dormant(); TBitmap.FreeImage();


 
syte_ser78 ©   (2006-11-14 17:43) [58]

Loginov Dmitry ©   (14.11.06 16:21)
20000, но врядли ты его увидишь в кэпшине формы.


 
oldman ©   (2006-11-14 17:47) [59]


> Percent   (14.11.06 17:41) [57]
> Каждая линия - это объект, наследуемый от TPaintBox и в
> каждом объекте создается 2 битмапа.
>
> "Чиста правильные пацаны" наследуют от TGraphicControl.
> :-)


"Чиста правильные пацаны" хранят координаты в массиве и просто рисуют линии на канве по этим координатам :)))


 
RWolf ©   (2006-11-14 17:48) [60]


> TIF ©   (14.11.06 17:40) [56]

да нет, я тут ненадолго пацтол упал от таких поворотов сюжета :))
спорить не буду, конечно - зачем оно мне.
пишу, кстати, из-под XP, под которой сейчас крутится пара десятков открытых гуевых приложений, в т.ч. браузер с полсотней закладок.


 
Prohodil Mimo ©   (2006-11-14 17:55) [61]

RWolf ©   (06.11.14 17:48) [60]

в магазин с огромным мешком для картошки ходишь? сумка то не серьёзно, туда мало положить можно.
и архиваторами не пользуемся, т.к. у реальных пацанов и так места выше крыши и т.д. и т.п.

TIF ©   (06.11.14 17:40) [56]
не поймёт.


начинаю верить :о)

TIF ©   (06.11.14 17:40) [56]
пробки в городе повышибало


и не только в городе и не только пробки :о)


 
Percent   (2006-11-14 17:56) [62]

"Чиста правильные пацаны" хранят координаты в массиве и просто рисуют линии на канве по этим координатам

Автор не удосужился изложить ТЗ, поэтому нельзя быть уверенным в том, что это может быть не объект. Лично я отдаю предпочтение объектам. Особенно если у заказчика "семь пятниц на неделе", и он решит изменить ТЗ, сказав, что, к примеру, линии надо перетаскивать мышкой; тогда модификация программы, в которой линии реализованы в виде объектов, будет проще - достаточно будет написать обработчики соответствующих сообщений; с массивом координат это будет намного сложнее. Но это так, мой субъективный взгляд...


 
TIF ©   (2006-11-14 17:58) [63]


> и не только в городе и не только пробки :о)


у меня уже свет мигает :-)


> пишу, кстати, из-под XP, под которой сейчас крутится пара
> десятков открытых гуевых приложений, в т.ч. браузер с полсотней
> закладок.


Ты шо, Билл ГейТс?  Приложения-то наверное грузятся, но со скоростью эстонских черепашек. Или нет?


 
Loginov Dmitry ©   (2006-11-14 17:58) [64]

oldman ©   (14.11.06 17:47) [59]
"Чиста правильные пацаны" хранят координаты в массиве и просто рисуют линии на канве по этим координатам


Я использую TPainBox чиста по причине лени. Ну лень мне отлавливать события OnMouseXXX для каких-то безтелесных линий. А TPainBox все отлавливает сам.
Вот как отвалится прога при визуализации много-часовой записи сигналов ЭКГ, так и начнем рисовать как "чиста привильные пацаны" :)


 
Percent   (2006-11-14 18:06) [65]

Я использую TPainBox чиста по причине лени.

По причине лени, поробил бы уже свой класс "разделителей" от TObject, в полях которого хранил бы его позицию и Parent"а, и еще пару методов - для отрисовки на Parent"е и для общения с мышью.
И Parent"а ему - сам контрол, на котором ЭКГ отображается, чтобы Parent умел работать с твоими "разделителями" - отсылал бы им события отрисовки и мыши.
Делов на два часа.
И никаких проблем в будущем.


 
Percent   (2006-11-14 18:07) [66]

поробил = породил


 
oldman ©   (2006-11-14 18:07) [67]


> Loginov Dmitry ©   (14.11.06 17:58) [64]
> события OnMouseXXX для каких-то безтелесных линий.


улыбнуло...


 
Ketmar ©   (2006-11-14 19:14) [68]

>[9] RWolf(c) 14-Nov-2006, 16:41
>вопрос - что ограничивает это число?
>вроде, работаем все давно уже не под Win"9x.
Фэнь Янь знает.


 
Anatoly Podgoretsky ©   (2006-11-14 19:19) [69]

> RWolf  (14.11.2006 17:08:33)  [33]

> Анатолий, у этой нормальной системы в наличии родовая травма - по 64 кБ под ресурсы GDI (и system и kernel тоже).

Достаточно, столько сложного софта работает, может не в этом дело?


 
Anatoly Podgoretsky ©   (2006-11-14 19:20) [70]

> clickmaker  (14.11.2006 17:11:37)  [37]

А у меня сервера достаточно сложные месяцами крутились без перезагрузки. Так что!


 
oldman ©   (2006-11-14 19:20) [71]


> Anatoly Podgoretsky ©   (14.11.06 19:19) [69]


<offtop>
А как же прозвучавший гудок??? :)


 
Anatoly Podgoretsky ©   (2006-11-14 19:24) [72]

> Prohodil Mimo  (14.11.2006 17:37:54)  [54]

Это мелочь, а вот отношение пользователей падает, как можно с такими дело иметь, мы лучше Васю Пупкина позовем.


 
Anatoly Podgoretsky ©   (2006-11-14 19:34) [73]

> oldman  (14.11.2006 19:20:11)  [71]

Так я уже не у станка.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.64 MB
Время: 0.038 c
15-1163601913
AlexanderMS
2006-11-15 17:45
2006.12.03
Сообщения Windows.


15-1163142284
Slider007
2006-11-10 10:04
2006.12.03
Вопрос по Wi Fi


15-1163708207
Yeg
2006-11-16 23:16
2006.12.03
PowerPoint и звуковой файл


2-1163591974
Толян__
2006-11-15 14:59
2006.12.03
Архивировать файл


15-1163590192
Click
2006-11-15 14:29
2006.12.03
Снова вопрос "организации алгоритма"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский