Win XP vs Win 98
Участников: 2
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Win XP vs Win 98
Немного предыстории..
Я начал програмерить, когда ХР был еще в диковинку, и в основном везде стояла 98-я. Со временем пришлось переходить на ХР и в етот момент начались проблемы, типа таких:
пишеш прогу, при работе в определенном месте выдает ошибку, береписыываеш немного подругому етот кусок кода, запускаеш - работает, делаешь несколько раз CTRL+Z до предыдущего состояния, и.. о чудо, все опять работает.
После етого пишу я только под 98. Так бы и писал, но седня возникла давно забытая проблема - прога, которая без проблем работает у меня, после небольшой модификации перестала работать под ХР. Пошел отлаживать на тот комп. Просидел пол дня. Трындец, таких чудес я еще не видывал. И после етого мелкомягкие называют ХР-шное ядро супер мега стабильное))
Смысл вот в чем - ошибка возникает в разных местах программы. Как раз в ето время я писал кусок проги, которая обрабатывала даты и время, ну и следовательно я грешным делом подумал на компилятор или его функции работы сдатой, но как оказалось (слава богу), он тут не причем. Все дело в том что ХР пытаясь управлять памятю программы делает нечто нетак, в отличие от 98-ой, в которой практически все возлагается на саму программу. И в 99% случаев прога вылетала, и только в 5% выдавалось сообщение об ошибке (в остальных вылетала, как будто так и должно быть, типа прога виновата). Ошибка указывала на модуль NTDLL.
Люди, мож я не один такой, кто сталкивался с подобными проблемами, че мне сделать, шобы прога работала. Ведь многие производители ПО утверждают что именно в ХР по сравнению с 98-ой софт работает стабильно. В общем то в дальнейшем серавно планируется в основном под Линуксом ее использовать, но всеравно, хочется понять причины таких чудес...
Я начал програмерить, когда ХР был еще в диковинку, и в основном везде стояла 98-я. Со временем пришлось переходить на ХР и в етот момент начались проблемы, типа таких:
пишеш прогу, при работе в определенном месте выдает ошибку, береписыываеш немного подругому етот кусок кода, запускаеш - работает, делаешь несколько раз CTRL+Z до предыдущего состояния, и.. о чудо, все опять работает.
После етого пишу я только под 98. Так бы и писал, но седня возникла давно забытая проблема - прога, которая без проблем работает у меня, после небольшой модификации перестала работать под ХР. Пошел отлаживать на тот комп. Просидел пол дня. Трындец, таких чудес я еще не видывал. И после етого мелкомягкие называют ХР-шное ядро супер мега стабильное))
Смысл вот в чем - ошибка возникает в разных местах программы. Как раз в ето время я писал кусок проги, которая обрабатывала даты и время, ну и следовательно я грешным делом подумал на компилятор или его функции работы сдатой, но как оказалось (слава богу), он тут не причем. Все дело в том что ХР пытаясь управлять памятю программы делает нечто нетак, в отличие от 98-ой, в которой практически все возлагается на саму программу. И в 99% случаев прога вылетала, и только в 5% выдавалось сообщение об ошибке (в остальных вылетала, как будто так и должно быть, типа прога виновата). Ошибка указывала на модуль NTDLL.
Люди, мож я не один такой, кто сталкивался с подобными проблемами, че мне сделать, шобы прога работала. Ведь многие производители ПО утверждают что именно в ХР по сравнению с 98-ой софт работает стабильно. В общем то в дальнейшем серавно планируется в основном под Линуксом ее использовать, но всеравно, хочется понять причины таких чудес...
Re: Win XP vs Win 98
А ты случайно не пытаешся напрямую работать с памятью.
В смысле запрашивать динамическую или что-то в этом роде?
Хрюша она такое дело не очень любит. Особенно когда эта память кода или чужой программы.
Также она выдрючивается при низкоуровневом обращении к железу.
Но по сути это совершенно верная политика, есть спецальные драва, а выполняемый код на лету лучше самому ручками не править.
Возможны проблемы с внешними библиотеками, особенно winApi?
С апи, там вообще весело для win9x мелкософт вставляла заглушки, а win nt их продублировала.
Но наверное это всем известно.
Я вообще кодю именно под хрюшей и нормально.
fb не выёживается, про 98 уже и забыл давно, а об линухе мне пока только мечтать.
Но насколько я замечал, под xp программы (мои) работают более стабильно.
Причём и home и professional edition.
на нескольких разных машинах.
В смысле запрашивать динамическую или что-то в этом роде?
Хрюша она такое дело не очень любит. Особенно когда эта память кода или чужой программы.
Также она выдрючивается при низкоуровневом обращении к железу.
Но по сути это совершенно верная политика, есть спецальные драва, а выполняемый код на лету лучше самому ручками не править.
Возможны проблемы с внешними библиотеками, особенно winApi?
С апи, там вообще весело для win9x мелкософт вставляла заглушки, а win nt их продублировала.
Но наверное это всем известно.
Я вообще кодю именно под хрюшей и нормально.
fb не выёживается, про 98 уже и забыл давно, а об линухе мне пока только мечтать.
Но насколько я замечал, под xp программы (мои) работают более стабильно.
Причём и home и professional edition.
на нескольких разных машинах.
Re: Win XP vs Win 98
Ну весь прикол в том и есть, что я с памятью стараюсь на прямую не работать, единственое передаю из ДЛЛ-ки большую переменную через byref, но до определенного времени все работало, а после дописания еше небольшого куска программы (в котором напрямую с памятью вообще не работал), начали появляться ошибки в случайных местах, в том числе и в основной проге, к которой эта ДЛЛ подключается.
Первая мысль сразу была, что ХР недает делать большой string (хотя ~30КБ не так уж и много, по сравнению с заявленными 2ГБ), поетому ради експеримента запустил прогу, которая расширяла переменную, дошел до 700МБ, все нормально (оперативы 256, соответственно свопил) проблем не было
Первая мысль сразу была, что ХР недает делать большой string (хотя ~30КБ не так уж и много, по сравнению с заявленными 2ГБ), поетому ради експеримента запустил прогу, которая расширяла переменную, дошел до 700МБ, все нормально (оперативы 256, соответственно свопил) проблем не было
Re: Win XP vs Win 98
Описанная ситуация очень похожа на то, что бывает в java.
Там есть, так называемый "сборщик мусора".
Его суть в том, что он прибивает лишние переменные, объекты и т.п.
Тем самым освобождая память.
Запускается же он время от времени и нельзя точно сказать, когда он что сотрёт.
Но если ссылки нет в процессе исполнения программы, то скорее всего данные будут грохнуты.
Мне эта политика не очень понятна. Я бы предпочёл, что-бы программеру оставили возможность прибивать потоки и экземпляры. Ну да подобное не обсуждается.
К чему это я вспомнил? При небрежном программировании в java начинают появлятся, так называемые "плавающие ошибки", то есть, то нет, причём в разное время и в разных местах.
Это работа именно "сборщика мусора".
Может быть у вас происходит нечто похожее?
Кстати, а что за dll'ка?
Если она сторонняя, попробуй написать заглушку на fb.
И заглянуть в тему, где я спрашивал о передачи строк из dll. Может что-то незнакомое всплывёт из моих изысканий.
Там есть, так называемый "сборщик мусора".
Его суть в том, что он прибивает лишние переменные, объекты и т.п.
Тем самым освобождая память.
Запускается же он время от времени и нельзя точно сказать, когда он что сотрёт.
Но если ссылки нет в процессе исполнения программы, то скорее всего данные будут грохнуты.
Мне эта политика не очень понятна. Я бы предпочёл, что-бы программеру оставили возможность прибивать потоки и экземпляры. Ну да подобное не обсуждается.
К чему это я вспомнил? При небрежном программировании в java начинают появлятся, так называемые "плавающие ошибки", то есть, то нет, причём в разное время и в разных местах.
Это работа именно "сборщика мусора".
Может быть у вас происходит нечто похожее?
Кстати, а что за dll'ка?
Если она сторонняя, попробуй написать заглушку на fb.
И заглянуть в тему, где я спрашивал о передачи строк из dll. Может что-то незнакомое всплывёт из моих изысканий.
Re: Win XP vs Win 98
Точно!
Скорее всего гдето у мня идет утечка памяти, тк в проге обрабатываю sqlite-ные базы данных, и результат возвращается в виде указателей на выделенную область памяти с выбранными из базы данных, при неявном освобождении этой памяти она видать так и остается (хотя вродебы везде вычищаю), но причина скорее всего сдесь и кроется.
Спасибо за наводку, буду копать.
А на счет DLL-ки, то она тоже мною написана на FB и подключается как плагин, поетому с передачей параметров там проблем у мня нет.
Скорее всего гдето у мня идет утечка памяти, тк в проге обрабатываю sqlite-ные базы данных, и результат возвращается в виде указателей на выделенную область памяти с выбранными из базы данных, при неявном освобождении этой памяти она видать так и остается (хотя вродебы везде вычищаю), но причина скорее всего сдесь и кроется.
Спасибо за наводку, буду копать.
А на счет DLL-ки, то она тоже мною написана на FB и подключается как плагин, поетому с передачей параметров там проблем у мня нет.
FreeBasic :: Программирование :: Общее
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|