Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Embarcadero RAD Studio

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323

Открыть новую тему     Написать ответ в эту тему

V1s1ter



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
         
Обсуждаем новые возможности и баги
 
Просьба писать про Embarcadero RAD Studio XE5, XE6, XE7, XE8, 10.x (Seattle, Berlin,Tokyo)
  По вопросам скачивания - Тема в Варезнике (lite-версии тут)
  Вопросы по неюникодным версиям Delphi — шестая бумага
  Бесплатные Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus
  Коммерческие компоненты и утилиты для Delphi/BCB
  Вопросы по компонентам для Delphi, C++ Builder разных версий
  Новые языковые возможности, начиная с Delphi 2005 по XE4 — здесь, и New!здесь еще
  Англоязычный официальный форум Embarcadero — здесь
  Embarcadero Quality Central, веб интерфейс — здесь, новый Quality Portal тут
  Программирование на Delphi — викиверситет
  Другие ресурсы
   Предыдущие бумаги
 
     Вопросы ..XE4       Вопросы ..XE3    Вопросы ..XE2      
  Вопросы ..2009-XE    Вопросы ..<2009 / ч.5    Вопросы ..<2009 / ч.4      
  Вопросы ..<2009 / ч.3    Вопросы ..Delphi 2 / ч.2    Вопросы ..Delphi  

  Выключение встроенного эксперта Castalia  для XE8 (иногда помогает при вылетах и тормозах)  
  Полезные плагины(эксперты)

Всего записей: 948 | Зарегистр. 06-02-2007 | Отправлено: 15:25 11-09-2013 | Исправлено: Komandor, 15:49 31-03-2024
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Если GC не будет хватать памяти, ведроид тупо скинет в кэш фоновые приложения. Т.е. для пользователя вообще не имеет значения сколько свободной памяти доступно на устройстве т.к. для работы активного приложения она есть всегда.  

Эх, на моем устройстве сколько свободной памяти имеет значения. При обновлении программ постоянно выскакивает не хватает памяти в устройстве. Пока не удалишь программу полностью и заново не поставишь. Кэш тоже может тупо закончится.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 10:36 08-01-2015
landy



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SuPriTo, аппаратное решение софтовых проблем - обычно самое простое и дешевое
ASUS ZenFone 2 - первый в мире смартфон с 4 ГБ ОЗУ стоимостью $199

Всего записей: 576 | Зарегистр. 17-01-2003 | Отправлено: 11:19 08-01-2015
SuPriTo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
landy
1. XE не поддерживает процессоры Intel под андроид. Для меня это важно, в планах софтину писать под андроид для личного пользования.
2. Этот аппарат уже не такой дешевый в рублях из-за курса.
3. Мой текущий аппарат меня устраивает. Если что на подхвате планшет на винде.
4. Я написал предыдущее сообщение, чтобы обозначить проблему с памятью.

Всего записей: 1475 | Зарегистр. 24-03-2009 | Отправлено: 12:17 08-01-2015 | Исправлено: SuPriTo, 12:19 08-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013

Цитата:
Компилятор ошибаться не может - это Вы ошибаетесь когда не берёте на себя ответственность за использование только что появившихся новинок языка


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

OMG.
 
SuPriTo

Цитата:
При обновлении программ постоянно выскакивает не хватает памяти в устройстве. Пока не удалишь программу полностью и заново не поставишь. Кэш тоже может тупо закончится.  

Так он тебе не про ОЗУ, пишет, а про внутреннюю память. Разные же вещи.

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 13:30 08-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
OMG.  

Ладно, считаем за отмазку. Но в свете отмазки Ваши заявления о преимуществах GC тоже OMG, так как ещё до того как я начал просить, за подозревал, что пример, как Вы долго искали ошибку - выдуманный. Вы этим примером пытались опровергнуть моё заявление:

Цитата:
Добавлено:  
Цитата:  
>Да, он очень быстро падает.    
У дровосеков одной и той же квалификации - реже падает. Там гораздо больше экзепшенов прописано - труднее заблудиться в вариациях на тему. (xpin)  


Цитата:
Цитата:  
>труднее заблудиться в вариациях на тему.    
AV указывающий на мусор мало чем тебе поможет, а это очень распространенная ситуация. (kaz_av)  


Цитата:
Я её вылавливал несколько часов. И это мой собственнй код, который я пишу и о котором знаю всё до самой последней мелочи. (kaz_av)  

Вся история оказалась фикцией. "очень распространенная ситуация" оказалась на столько не распространённой, что автор даже замены не смог подобрать.  
 
Зы:
OMG

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 17:16 08-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
Просто я не вижу смысла продолжать разговор с человеком убежденным в святости компилятора.

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 18:44 08-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av
Я же сказал, - Вы отмазались, бог с Вами, зачем продолжать?  
Не в святости калькулятора я убеждён, а в том что ошибки надо искать в себе, а не в бездушных творениях. А коли виновны не Вы, так приведите доказательство, чего стесняться то?
 
Добавлено:
Да наконец обидно, я тут хук IUnknown интерфейсов Delphi ToolsAPI выкладываю, чтобы показаться интересным собеседником, оказывается я недалёкий человек. А Вы хоть знаете сколь тернистый путь перехватить BorlandIDEServices, отдать вместо него свой IModuleServices, отдать свои IModule, добраться до юникодного редактора, потом вернуть все счётчики интерфейсов на место и проделать это же во всех версиях Delphi. Уж не в святости компилятора я уверен, а в безалаберности разработчиков IDE делфи и их не понимании идеологии IUnknown - то есть об интерфейсе мы не должны знать ничего.

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 19:49 08-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013

Цитата:
Не в святости калькулятора я убеждён, а в том что ошибки надо искать в себе, а не в бездушных творениях

Код этот (библиотека большая) писался под версии 2006-по самую последнюю, которой тогда была XE. Писался на 2006, проверялся на 2009 и XE. Когда начал делать полную проверку - а библиотека обложена тестами вдоль и поперек - на 2010 обнаружился AV, который не воспроизводился ни на одной другой версии. Поиски показали, что имеется проблема в кодогенераторе, который дважды финализирует интерфейс. Т.к. смысла постить баг в QC небыло - на XE он уже не воспроизводился - был найден воркараунд и о проблеме благополучно забыли.
 

Цитата:
А коли виновны не Вы, так приведите доказательство, чего стесняться то?  

И вот теперь, спустя несколько лет, ты предлагаешь мне привести для тебя воспроизводимый пример? А ты понимаешь, что баг может элементарно не воспроизвестись на голом проекте? А понимаешь, что спустя такое количество времени, я могу просто не вспомнить всех деталей? А человеку который твердит, что комплятор ошибаться не может, я рекомендовал бы почитать QC, на предмет багов кодогенератора, но боюсь, что у кого-то треснет шаблон.
 

Цитата:
А Вы хоть знаете сколь тернистый путь...

Ценность кода определяется не тернистостью пройденного пути, а полезностью выполняемой работы. То о чем ты написал, меня совершенно не интересует, поэтому я твой код даже не смотрел, уж извини.

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 21:04 08-01-2015 | Исправлено: kaz_av, 21:08 08-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
Ценность кода определяется не тернистостью пройденного пути, а полезностью выполняемой работы.

Для меня никогда ничего полезнее не было, чем забраться под самую кожу Delphi, иметь над ней абсолютную власть, взломать её не взламывая, покорить её в самое сердце (я считаю var BorlandIDEServices сердцем или сердцевиной как хотите). Я публиковал только замену дат, но я перехватывал хинты редактора, генерил их самостоятельно, много чего, в общем проверял возможности делать с ней что угодно. Так что неправильно предъявлять авторам EhLib-ов, типа "что могут ваши демонстрашные exe - что полезного в этих готовых проектах"?
 
Однако  я же заметил, а Все пропустили:

Цитата:
xpin2013
Кстати, кто не в курсе, то напоминаю - тип TDataTime легко конвертируется в Double. По сути это один и тот же тип, поддерживающий ту же арифметику на уровне процессора. Так вот прикол - обратите внимание на первую цифру перед точкой.    
'2014/12/31 11:42:28' = 42004.4878240741  
'2015/01/01 13:34:36' = 42005.5656944444    
Так понимаю через 10 дней будет 42014 - 42015, может перенесём Новый Год?  

42014 - это 10.01.2015
42015 - это 11.01.2015
Очень редчайшее совпадение. Так
52042 - это 25.06.2042 - явно под новый год не катит, хотя прошло уже 27 лет
62069 - это 10.11.2069 - тоже не новый год. и так далее.
 
А вот с 10.01.2015 по 11.01.2015 будет самый что нинаесть Бинарный Новый Год! Всех поздравляю заранее, не пропустите. Дату можно проверить следующим кодом:
 
Showmessage(DateToStr(42014.0))
 
 
 
Добавлено:
зы
Да кстати что может быть полезного, что я заметил редчайшее совпадение в компьютерной индустрии, которое не предвидится в ближайшие 50 лет, которые проживут компьютеры. Что полезного например в воздушных шариках и мыльных пузырях ? Может быть только радость от ещё одного праздника. Всем радости и веселья!!!

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 02:21 09-01-2015 | Исправлено: xpin2013, 05:48 09-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кратко о времени:
 
Timestamp к нам пришёл из UNIX. Он занимает 4 байта, 1 равна секунде, отсчёт идёт 1970 года. В FFFF:FFFF влазит около 138 лет.
TTimestamp в Delphi это 8 байт:
  TTimeStamp = record
    Time: Integer;      { Number of milliseconds since midnight } //4 byte
    Date: Integer;      { One plus number of days since 1/1/0001 } //4 byte
  end;
Так что его мы пока не отмечаем, есть ещё TSQLTimespamp (вроде около 16ти байт).
DateTime стандартный у всех, однако что касается баз данных.
В FireBird (у меня 2.5.0.26074) типа Datetime нет, есть Date и Time отдельно и есть Timestamp.
В MSSQL есть Datetime, но есть ещё и Datetime2 - более точное время с более широким диапазоном.
В Delphi 2010 появилось поле TSQLTimeStampOffsetField, выглядит оно как время плюс смещение по Гринвичу - 01.01.2011 11:22:05 +03:00.
В FAT32 время хранилось в 4х байтах, подозреваю, что это Timestamp, но в документациях пишут что это "the OS time stamp", в чём разница не поясняют. Про DOS "the OS time stamp" так же известно, что он хранится в ZIP файле и при разархивировании на NTFS из-за округлений для преобразования набегает 2 секунды. Значит, это не совсем Timestamp как у UNIX.
 
Из всех конкурентов более по душе Datetime (IMHO).

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 09:37 09-01-2015 | Исправлено: xpin2013, 09:44 09-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013

Цитата:
Так что неправильно предъявлять авторам EhLib-ов, типа "что могут ваши демонстрашные exe - что полезного в этих готовых проектах"?

С "EhLib'ами", как раз, всё понятно. А вот полезность хрени вставляющей дату в исходник весьма сомнительна. Особенно если учесть, что сделать это можно менее черезжопным способом - используя pre-build events, которые будут работать даже при сборке из командной строки.
 

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 09:54 09-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av
1) Естественно, но это же обман. Мы запоминаем дату, вставляем в файл, потом восстанавливаем. То есть дата исходника одна, а дата изменения файла другая, какая из них логичнее?  
2) pre-build events. Ну да хорошо, но он вставит дату только в тех каталогах которые ему настроят, он должен запоминать даты которые были до этого, чтобы быть эргономичнее а не перезаписывать всегда все файлы настроенных каталогов. Он ничем не поможет если я нахожусь в проекте EXE, открываю файл библиотеки package, исправляю там ошибку, и забываю про пакет. EXE будет компилиться с неверной датой в окне About. Тут я обязан прописывать каталоги, помнить кучу нюансов, что обязательно нужен билд.
3) pre-build events. Их в Delphi6 не было, но можно было назначить INotificationModue ToolsAPI. Чтобы сделать это Рей Лишнер (секреты Delphi2) предлагал класть на такую форму свой компонент, который при создании в Design-Time вешает нотификатор, но это не касается тех юнитов которые не имеют форму. Задача была одна - создать свой объект при создании любой закладки любого модуля. Стандартных способов ToolsAPI сделать такое не было даже в d2006. Хотя не то что недокументированным способом, отыскать его изучая ToolsAPI.pas практически невозможно, но GExpert умудряются встраивать свой тулбар в редактор, однако это опять же видимые компоненты как у Рея Лишнера.
4) EhLib понятен так как он уравнивает программиста со стажем 1 год с программистом со стажем 16 лет. Но должна же быть какая то инфраструктурная этика. EhLib это один инструмент, а технология позволяющая заменить любой внутренний интерфейс самой Delphi это другой инструмент, он для высшей касты как бы проще сказать. Сделать такой инструмент, свернуть горы, добраться до золотого берега, ради чего? Конечно же чтобы поправить циферку у даты немного.  
5) Что он мне дал? Разработка таких инструментов как GExpert для меня стала в 100 раз проще, то что я накручивал, я никому не даю. Код приобретал почти абсолютную независимость от версий Delphi. По технологии ничего не менялось с 2006 го года. Только благодаря ему я узнал, что внутри Delphi существуют препоны на объявленный ToolsAPI, то есть если в хидере написаны определённые последовательности символов, то объявленный интерфейс для чтения исходника останавливается на них и ничего больше не возвращает. Приходилось схитрить. Мне открылся особенный мир не доступный тем кто не писал GExpert или подобный проект.
 
В итоге - мой инструментик весьма простенький 3 pas файлика, одно отличие - Вы редактируете не компонент а исходник. Конкретно Вас kaz_av, я не призываю писать инструменты ToolsAPI, но про pre-builds не пишите пожалуйста, я рассматривал и такие варианты, но все они были ужасны, гораздо ужаснее чем Ctrl+S.
 

Цитата:
А вот полезность хрени вставляющей дату в исходник весьма сомнительна.

Я вот сравнительно уже стар. У нас программисты отмечают свои версии последней цифрой билда. Я с трудом понимаю как они запоминают что было в 124 а что было в 136 билде. Но они же это для чего-то делают, типа мне сказали ошибку я спросил билд и понял что ошибка была исправлена позже. Я вот хочу посмотреть на них когда 2.9.5.124 сменится 3.0.0.136, потом 3.0.1.. 3.0.15, 3.1.0..3.1.4, 3.2.0 и так далее. Я уже обычно не помню чем отличается 3.1 от 3.1.3. Когда мне говорят вместо версии дату моего исходника, который я записывал и смотрел чтобы там в датах не было цифры 666, я конечно сразу вспоминаю, ага это до, а это после. То есть для меня это без сомнений полезная хрень... Закроем.
 
Я напоминаю - Вы же отмазались. То что:
 

Цитата:
Поиски показали, что имеется проблема в кодогенераторе, который дважды финализирует интерфейс. Т.к. смысла постить баг в QC не было - на XE он уже не воспроизводился - был найден воркараунд и о проблеме благополучно забыли.  
И вот теперь, спустя несколько лет, ты предлагаешь мне привести для тебя воспроизводимый пример? А ты понимаешь, что баг может элементарно не воспроизвестись на голом проекте? А понимаешь, что спустя такое количество времени, я могу просто не вспомнить всех деталей?

 
Это никак не вяжется с Вашим же утверждением о том, что такие случаи сплошь и рядом и они происходят чаще чем в средах которые используют GC. Вы же сказали - случай распространённый, я Вас за язык не тянул. Теперь Вы боитесь что мол на голом проекте кодогенератор текст исходника поймёт по другому, чем тот же текст но не на голом проекте, тут что-то у меня вообще не укладывается. Все Ваши объекты не на голом проекте появляются только после того как кодогенератор (win32/win64) отработает и выдаст программу, как они у Вас связаны? Это же не дотнет! Просто приходится наблюдать много мути, ничего доказывающего, что Ваш случай по Вашим словам распространённый. В каком месте?
 

Код:
 
  SUPPORTS_INLINE                Compiler supports the inline directive (D9+/FPC)
  SUPPORTS_FOR_IN                Compiler supports for in loops (D9+)
  SUPPORTS_GENERICS              Compiler supports generic implementations (D11.NET, D12+)

D9 - это 2005
D12 - это 2009
Вы бы в своём примере на 2010 использовали бы генерики лучше. По слухам с QC генерики исправляли от багов даже во времена XE3.
 
Историческая справка
TWideStringField появился в D7, но не работал. В D2005 он тоже не работал. В D2006 и D2007 он работает, но нет элементов редактирования показывающих Wide а не Ansi. В D2009 появляется юникод. В D2010 мы уже видим правильные буквы. D7 доросла  до D2010. А Вы, в 2005 появились енумераторы в 2006 их используете и жалуетесь на распространённость недопонимания Вас компилятором. Мне уже нечего добавить к этому "РАСПРОСТРАНЁННОМУ" случаю предлагаю закрыть.
 


Предлагаю продолжить про ещё один Новый Год. Хорошо это или нет друзья?
Showmessage(DateToStr(42014)) = 10.01.2015
Showmessage(DateToStr(42015)) = 11.01.2015
Кто может подсчитать, когда будет такое же совпадение с новым годом? Допускается сдвиг не более десяти дней. Сколько пройдёт столетий или тысячелетий до такого же случая?

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 11:21 09-01-2015
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
Ты убедился, что
Цитата:
Цитата:
Это 5 процентов овехеда -- чудовищное замедление?
 
Из ничего - не то слово.  

проблема фрагментации памяти не надумана? Вот и ладушки.  

нет, не убедился. Пример не показателен.

Цитата:
Последовательно у тебя расположены ссылки, а счетчики находятся где? Вот-вот... В объектах, которые лежать могут где угодно.  

Если объекты примерно одинаковой длины, то они будут расположены, с большой вероятностью, рядом. Так устроен менеджер кучи для небольших объектов.
Если нет, то и в GC не будут расположены последовательно, поскольку это вызвало бы жуткую фрагментацию очень быстро.
 
Кроме того, как я уже говорил, последовательное размещение объектов не дает выигрыша в скорости в плане кэша, если эти объекты более 64байт.  
 
Если же объекты меньше, то тем хуже для GC -- с маленькими объектами ему управляться труднее всего.

Цитата:
Детский сад какой-то. А элемент массива не может быть 32 или 64 байта, нет?  

Могут. И я выделяю буфер как раз такой, чтобы в него помещалось на 1-2 элемента более заявленного . Но , поскольку буферы обычно выделяются под строки, я и упомянул 1-2 байта.  
Все остальное твои придирки.

Цитата:
Сам автор пишет, что версия экспериментальная. Если ты считаешь использование экспериментальной версии в продакшене нормальным, то говорить более не о чем.  
Любой новый код является экспериментальным
Когда я пишу свой код, то он является куда менее стабильным , чем код, опубликованный в сети, и которым пользуются десятки или сотни разработчиков.
 
Во включении чужого полезного кода нет никакой проблемы, если умеешь править чужие исходники. Это лучше, чем изобретать велосипед.
 
И вполне нормально использовать его в "продакшене", когда это нужно. Мне не свойственна эта боязливость.
 
Для людей, думающих  как ты, "как бы чего не вышло", -- да, managed код привлекателен. Но мне это кажется недостатком профессионализма и мужества.
 

Цитата:
Только iOS пилиться именно под это конкретное железо, а ведроид работает вообще на любой ноунеймовой китайщине. Разница немного очевидна, не считаешь?  

ладно, это вопрос веры, что тормозит Андроид: кривая поддержка железа или Dalvik. Я думаю, что именно Dalvik, поскольку над поддержкой железа работают многоопытные сишники-линуксоиды.
Тем не менее примеров, где managed код работает хуже натива, предостаточно.
 

Цитата:
Цитата:
Это 5 процентов овехеда -- чудовищное замедление?
 
Из ничего - не то слово

Я показал уже, что JVM на строках, даже когда "обгоняет" Delphi, половину процессорного времени, и половину RAM выделяет под нужды GC.
5 процентов оверхеда из-за кривого использования ARC -- это много,"не то слово",
а 50 процентов всех ресурсов на GC -- это ерунда?

Цитата:
Цитата:
вот тебе и ответ. GC может быть хорош, когда памяти вдвое более требуемой.  
 
Нет не ответ. Если GC не будет хватать памяти, ведроид тупо скинет в кэш фоновые приложения. Т.е. для пользователя вообще не имеет значения сколько свободной памяти доступно на устройстве т.к. для работы активного приложения она есть всегда.  

Сбрасывать в кэш? То есть будет свопиться.. Ну, мы знаем, что это такое.
А если одному приложению потребуется почти вся, 60-70 процентов, свободная память, что будет? А вот что: перманентный GC, из-за не освобожденной вовремя памяти.
Так ли хорош GC, когда памяти не вдвое более требуемой?

Цитата:
 
Это с чего вдруг? Никаких разговоров об ограничении небыло
 
Память конечна. А сравнение должно проводится в равных условиях.  
 
Или ты думал, что я забился с тобой на пацанский спор? Может, еще и кирпичи купить мне предложишь?

Цитата:
Ты не написал код на дельфях, который обогнал бы жабу на работе со строками. Всё что ты сделал, это загнал жабу в некомфортные условия работы. Молодец.  
Некомфортные условия работы -- это значит, справедливые и равные, в твоем понимании?
Может, запустим яву на i7, а Delphi выделим 4-й пенек?
А ведь Delphi приложение однопоточное, давай еще выделим JVM только одно ядро. Что мы получим, догадываешься? Или тебя ткнуть носом?
 
Да, ява быстрее Delphi на строках..  
..при  двукратном превосходстве ресурсов как по памяти, так и, верояно, по процессору .
Я выделил то, что было мелким шрифтом, всего то лишь.
При всем этом она все равно минимум в два раза уступает Delphi по отзывчивости, я наглядно показал на предложенном тобой примере.

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 11:51 09-01-2015 | Исправлено: AlekXL, 11:51 09-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xpin2013
Я весь твой поток сознания комментировать не осилю, потому выборочно:

Цитата:
Естественно, но это же обман. Мы запоминаем дату, вставляем в файл, потом восстанавливаем. То есть дата исходника одна, а дата изменения файла другая, какая из них логичнее?

Пишешь в своем исходнике {$I blah_blah_last_modified_datetime.inc}, настраиваешь событие на генерацию соответствующего файла. Всё.
 

Цитата:
pre-build events. Их в Delphi6 не было

Кто в 2015 использует D6 тот сам себе злобный буратино. Некрофилы должны страдать.
 

Цитата:
Я с трудом понимаю как они запоминают что было в 124 а что было в 136 билде.

Им VCS помогает.
 

Цитата:
Это никак не вяжется с Вашим же утверждением о том, что такие случаи сплошь и рядом и они происходят чаще чем в средах которые используют GC

Я тебе уже говорил, но повторю, и надеюсь, последний раз: проблема с затиранием стека и описанный случай неверной кодогенерации это разные ситации. Так вот слова о частой проблеме относятся к первой ситуации, а вторая была приведена, как демонстрация, когда даже в собственном коде ошибку найти крайнне не просто, особенно если учесть, что её там нет, тогда как про затирание стека разговор был в контексте использования стороннего кода.
 

Цитата:
А Вы, в 2005 появились енумераторы в 2006 их используете и жалуетесь на распространённость недопонимания Вас компилятором

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

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 12:04 09-01-2015
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
Цитата:
там умудренный джавист два часа распинался, как борясь с языком и парадигмой GC
 
А он там не рассказал, чего они не взяли нативные плюсы?

Обычная мантра: C++ сложен, нужна огромная команда, "жесточайшая" дисциплина, а критичное по производительности ядро  -- лишь небольшая часть продукта: обвязку  легче делать на Java.  
 
Про C++  во многом правда, но Delphi они даже не рассматривали, вероятно. Ибо  не владели.
 

Цитата:
А о том, что GC не требователен к количеству памяти никто не говорил.
Вот в этом и соль.. Никто, особенно, доднетчики и джависты не говорят, что GC генерит жуткий оверхед.
Ты сам мне брался утверждать, что GC на твоих примерах GC забирает "доли процента" процессорного времени.  
Но на примере, данном тобой же, я доказал что GC сжирает половину времени , в лучшем случае
Вот это и проблема, ты распространяешь ложь

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 12:07 09-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekXL

Цитата:
..при  двукратном превосходстве ресурсов

Да вот хоть при сколь кратном, но если я жабе дам памяти и она сделает работу сильно быстрее, то дельфу хоть завали ресурсами, быстрее шевелиться она не сможет.
 
Добавлено:

Цитата:
Обычная мантра: C++ сложен, нужна огромная команда, "жесточайшая" дисциплина

Т.е. когда он говорит о переписывании GC, он умудренный опытом джавист. А когда говорит о проблеме с нативом то это мантра

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 12:09 09-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
52042 - это 25.06.2042 - не новый год!
62069 - это 10.11.2069 - не новый год!
72097 - это 22.05.2097 - не новый год!
82124 - это 04.11.2124 - не новый год!
92152 - это 19.04.2152 - не новый год!
102179 - это 02.10.2179 - не новый год!
поздравляю, начиная с нашего дня мы перешли рубеж Timestamp (~138 лет)
112207 - это 18.03.2207 - не новый год!
122234 - это 30.08.2234 - не новый год!
прошло более двух столетий, такой же случай не повторился.
132262 - это 12.02.2262 - не новый год!
142289 - это 27.07.2289 - не новый год!
152317 - это 10.01.2317 - не новый год!
 
Такого же совпадения как с 10-го по 11-ое не предвидится ближайшие 300 лет. Программу расчёта можете написать сами, но цифра 300 уже поражает воображение.
 
У кого будут предложения как назвать этот Новый Год. Я пока называю бинарный - туго у меня с воображением. Как будет правильнее?

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 12:16 09-01-2015 | Исправлено: xpin2013, 12:18 09-01-2015
kaz_av

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Вот это и проблема, ты распространяешь ложь

Я сказал, что жаба порвет дельфю на работе со строками. Ты бил себя пяткой в грудь и грозился написать более быстрой код на дельфях. Я показал, как жаба таки рвет дельфу (и где тут ложь?), а ты написать быстрый код ниасилил. У тебя хватило ума лишь на то чтобы зарезать жабе память. Да ты ваще герой.

Всего записей: 439 | Зарегистр. 15-02-2006 | Отправлено: 12:19 09-01-2015 | Исправлено: kaz_av, 12:21 09-01-2015
AlekXL



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
Да вот хоть при сколь кратном, но если я жабе дам памяти и она сделает работу сильно быстрее, то дельфу хоть завали ресурсами, быстрее шевелиться она не сможет.  

"... дам памяти" и ядро процессора, не забывай.
Угу, если работа маленькая и нересурсоемкая, то конечно. Из 2 секунд на дельфи, ты выиграешь 1, -- может быть.  
Выиграешь в скорости там, где скорость не важна.
 
А на сложном ресурсоемком проекте -- проиграешь во всем : и в производительности, и в User Exprerience.
 
Java -- зачетный инструмент для мелкотравчатого девелопмента. Но не для сложных вычислений.
 

Цитата:
Т.е. когда он говорит о переписывании GC, он умудренный опытом джавист. А когда говорит о проблеме с нативом то это мантра  

так он джавист, а не нативщик. Он умудрен в своей джаве, но боязлив, когда дело доходит до натива, тем более Delphi.
Он полон решимости, борясь с языком, выстроить свой образ Delphi на JVM, поскольку первообраз обладает "фатальным недостатком".
 

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

ну прости, я то думал, что сравнение будет честным.  
Я думал о тебе лучше, чем следовало, хотя меня и предупреждали.

Цитата:
Я показал, как жаба таки рвет дельфу (и где тут ложь?), а ты написать быстрый код ниасилил.

твой изначальный код медленнее моего, на Delphi, за счет пересоздающихся StringBuilder'ов  
 

Цитата:
У тебя хватило ума лишь на то чтобы зарезать жабе память
Что значить "зарезать"?  
Всегда есть потолок.
 Я ограничил память и Delphi приложению, в равном объеме, и показал, что в этом случае java сливает.

Цитата:
Да ты ваще герой.
на личности переходишь?  
Повторюсь:
kaz_av, ты распространяешь ложь, говоря
1) GC потребляет доли процента процессорного времени, тогда как легко может 50 или более
2) Java быстрее Delphi на строках, не упоминая, что Java имеет преимущество только при наличии двукраного объема памяти, и процессорного времени на работу сборщика
3) Что накладные расходы на подсчет ссылок велики, хотя расходы на GC могут быть на порядок, в 10 раз больше
4) Что GC существенно оптимальнее по CPU кэшу, не упоминая, что сама работа GC забивает кэш служебными структурами сборщика
5) Что боятся проблем нативного кода, вроде порчи буферов памяти -- это нормально

Всего записей: 792 | Зарегистр. 24-04-2008 | Отправлено: 12:26 09-01-2015 | Исправлено: AlekXL, 13:03 09-01-2015
xpin2013



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kaz_av

Цитата:
Пишешь в своем исходнике {$I blah_blah_last_modified_datetime.inc}, настраиваешь событие на генерацию соответствующего файла. Всё.  

В каждом исходнике свой? А у меня их явно более двух сотен важных.
 

Цитата:
Некрофилы должны страдать.

О! Вот тут я Вам пожму руку даже, Ваши бы слова да кому-то в уши.
 

Цитата:
Советую тебе перечитать, на какой версии вылезла проблема и перестать уже обожествлять компилятор.

Я же писал историческую справку. В D2010 повезло тем счастливчикам, которые с D7 ждали, когда можно будет увидеть нестандартную (не Ansi) букву в приложении. Им повезло, а вот Вам видимо не очень, думаю много сил ушло именно в правильный юникод.
 

Цитата:
Что боятся проблем нативного кода, вроде порчи буферов памяти -- это нормально

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

Всего записей: 291 | Зарегистр. 16-01-2014 | Отправлено: 13:13 09-01-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Embarcadero RAD Studio


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru