OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Понедельник, 11 Декабрь, 2017 15:57

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
 Заголовок сообщения: Тест на падение ББ
СообщениеДобавлено: Суббота, 20 Июль, 2013 19:55 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
На днях решил проверить на какой программе будет падать сборщик мусора BlackBox. В итоге на одном сайте увидел ссылку на тест для языка D.
После трансляции на КП при запуске в BB 1.6 RC6 я получил долгожданный капкан, который сопровождался многочисленным открытием MessageBox с сообщением об ошибке и спустя некоторое время Windows убивала процесс сама.

Я хотел бы знать у всех ли срабатывает данная ошибка. У меня сработала в Windows XP с 2 GB + Windows 8 с 4 GB.

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

Скомпилируйте и запустите программу:
Код:
MODULE TestGCAlloc1;

   (*
      Benchmark on uniformly distributed, random large allocations.
      
      Origin:   https://github.com/D-Programming-Language/druntime/blob/master/benchmark/gcbench/rand_large.d
      
      Copyright:   Copyright David Simcha 2011 - 2011.
      License:   Boost License 1.0   (See accompanying file LICENSE or copy at http://www.boost.org/LICENSE_1_0.txt)
      Authors:   David Simcha
      Contributors:   Romiras 2013 (translated to Component Pascal + some modifications)
   *)
   
   IMPORT O := ObxRandom, Out;
   
   CONST
      nIter = 100;
      minSize = 1024 * 1000H;
      maxSize = 128 * minSize + 1;
   
   TYPE
      Item = POINTER TO ARRAY OF BYTE;
      Array = ARRAY 10 OF Item;
   
   VAR
      array : Array;
      item: Item;
   
   PROCEDURE UnifomInt (a, b: INTEGER): INTEGER;
      VAR r : REAL;
   BEGIN
      ASSERT(a < b, 22);
      r := O.Uniform();
      RETURN SHORT(ENTIER(a + r * (b - a)))
   END UnifomInt;
   
   PROCEDURE Do*;
      VAR i, j: INTEGER;
   BEGIN
      FOR i := 1 TO nIter DO
         FOR j := 0 TO LEN(Array) - 1 DO
            NEW(item, UnifomInt(minSize, maxSize));
            array[j] := item
         END;
         
         Out.String("Iteration "); Out.Int(i, 0); Out.Ln
      END
   END Do;

END TestGCAlloc1.

:!: TestGCAlloc1.Do

Данная ошибка была исправлена пользователем luowy в списке рассылки Blackbox в сентябре 2012. Модуль с последними исправлениями в сборщике мусора находится здесь


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Воскресенье, 21 Июль, 2013 15:50 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1976
Откуда: Красноярск
В Красноярской сборке под Wine проблем нет. Наверное, уже внес эти исправления... хотя было бы любопытно проверить есть эти исправления или нет. Роман, если не очень сложно, приведите, пожалуйста, какие это изменения, чтобы не копаться в «здесь».


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Воскресенье, 21 Июль, 2013 16:04 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Там была кнопка History, по которой можно было бы просмотреть историю изменений модуля.

Commit cf7bea25b81


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Понедельник, 22 Июль, 2013 03:25 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1976
Откуда: Красноярск
Роман М. писал(а):
Там была кнопка History, по которой можно было бы просмотреть историю изменений модуля.

Commit cf7bea25b81
Спасибо, сверил, все учтено было.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Понедельник, 22 Июль, 2013 19:45 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4468
Откуда: Россия, Орёл
Роман М. писал(а):
Данная ошибка была исправлена пользователем luowy в списке рассылки Blackbox в сентябре 2012.
Это? viewtopic.php?p=74862#p74862


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Понедельник, 22 Июль, 2013 19:59 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 1976
Откуда: Красноярск
Евгений Темиргалеев писал(а):
Роман М. писал(а):
Данная ошибка была исправлена пользователем luowy в списке рассылки Blackbox в сентябре 2012.
Это? viewtopic.php?p=74862#p74862
Точно! Отсюда брал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Вторник, 23 Июль, 2013 09:05 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Да. Если патч был применён, то ошибка не воспроизведётся.
Но у меня получилось воспроизвести по крайней мере на сборке Оберонкора с патчами исправлений с сайта, скачанного несколько месяцев назад. Мне кажется, пусть уж лучше ошибка воспроизведётся в таком искусственном тесте, чем во время использования во время работы, как у Роберта Кэмпбелла, в списке рассылки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Пятница, 26 Июль, 2013 20:22 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4468
Откуда: Россия, Орёл
Роман М. писал(а):
Да. Если патч был применён, то ошибка не воспроизведётся.
Но у меня получилось воспроизвести по крайней мере на сборке Оберонкора с патчами исправлений с сайта...
Достаточно было поглядеть список изменений (http://oberoncore.ru/projects/bb16base-core) --- поелику Kernel там нет, то патч не применён, и ошибка воспроизводится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Пятница, 26 Июль, 2013 20:36 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Евгений Темиргалеев писал(а):
Роман М. писал(а):
Да. Если патч был применён, то ошибка не воспроизведётся.
Но у меня получилось воспроизвести по крайней мере на сборке Оберонкора с патчами исправлений с сайта...
Достаточно было поглядеть список изменений (http://oberoncore.ru/projects/bb16base-core) --- поелику Kernel там нет, то патч не применён, и ошибка воспроизводится.
Что и требовалось доказать - ошибка воспроизводится. Всё, что мне было интересно знать. Ведь это и есть главная цель модуля TestGCAlloc1.
Я просто опасался того, что ошибка в ББ воспроизведётся не у всех. При условии, что патчи ещё не были применены, конечно. Иначе смысла проверять нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Пятница, 26 Июль, 2013 21:15 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4468
Откуда: Россия, Орёл
Роман М. писал(а):
Я просто опасался того, что ошибка в ББ воспроизведётся не у всех.
Понял, спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Суббота, 13 Декабрь, 2014 13:59 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Ещё один тест на работу сборщика мусора при создании дерева, который перенёс с языка D. Использовал для проверки при нехватке памяти доступной ядру ББ. Кажется, не выставлял ранее.

Вложение:
TestTreeBench1.cp.txt [2.08 КБ]
Скачиваний: 79


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Суббота, 13 Декабрь, 2014 16:45 

Зарегистрирован: Четверг, 12 Июнь, 2008 17:30
Сообщения: 35
Роман М. писал(а):
Ещё один тест на работу сборщика мусора при создании дерева, который перенёс с языка D. Использовал для проверки при нехватке памяти доступной ядру ББ. Кажется, не выставлял ранее.

Вложение:
TestTreeBench1.cp.txt



what's the problem? nothing happend after test.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Суббота, 13 Декабрь, 2014 17:35 

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7724
Откуда: Троицк, Москва
Мало кто насиловал сборщик мусора так, как я (точнее, мой софт: порядка 10 процов порядка 10 месяцев непрерывно).

Nothing happened.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Тест на падение ББ
СообщениеДобавлено: Воскресенье, 14 Декабрь, 2014 12:58 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1158
Откуда: Tel-Aviv
Если все патчи применены, то проблем с падением и не ожидается.
Этот тест не гарантирует падение, а только потенциально может выявить проблему в сборщике мусора.

Хочу обратить внимание, что проблемы со сборщиком мусора проявляются только в условиях нехватки памяти.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2017, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB