GraphWPF очистка экрана


#21

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


#22

хорошо, тогда зачем мне отладочная информация или как пользоваться ею?


#23

Это информация о том, какие части готового .exe относятся к каким строкам исходного кода. Если генерация отладочной информации включена - её сохраняет (вместе с самим исходником) в .pdb файл рядом с .exe .
Такая информация используется в основном исключениями:

type
  MyException = class(Exception) end;

procedure p2 :=
raise new MyException;

procedure p1 := p2;

begin
  try
    p1;
  except
    on e: MyException do
      Writeln(e);
  end;
  readln;
end.

Если запустить это с отладкой - выведет список всех вызванных подпрограмм в момент вызова raise. Если отключить отладку и запустить по Shift+F9 - тоже выведет список всех подпрограмм, но при этом строчки в исходнике рядом с ними писать уже не будет.

Строчка ошибки очень помогает ловить баги, но немного замедляет выполнении, поэтому в Release версия (или когда тестируют скорость выполнения) отладку обычно отключают.

P.S. У меня ещё и не выводит список подпрограмм в режиме без отладочной информации, потому что p1 и p2 - маленькие подпрограммы и поэтому их инлайнит. То есть заменяет их вызов на их содержимое.

И ещё, если включить отладку (F8) - галочка на отладочной информации ставиться сама, потому что без неё невозможно отлаживать.


#24

ну и последнее, запуск из под оболочки,можно по подробнее?


#25

Если я правильно понимаю - оболочка это то, во что оборачивает программу если запускать из IDE. То есть, к примеру, оболочка ответственна за выдачу сообщения после окончания выполнения “Программа завершена, нажмите любую клавишу”. Правда, у меня его почему то не выдаёт.


#26

а точнее УСКОРЕНИЕ запуска из под оболочки,что там он ускоряет?


#27

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

Ну, вот единственное место где упоминаются эти слова во всех исходниках.

И в целом, это уже больше говорит чем переведённый вариант)) Наверное использует .dll версию PABCSystem, чтоб не перекомпилировать его каждый раз при запуске из IDE. Ну, сейчас подробнее посмотрю.

Ну, почти. Вот. Rtl это сразу все стандартные модули, скомпилированные в виде .dll . Если их не компилировать при каждом запуске - запускать таки значительно быстрее.

Вот только я почему то не вижу чтоб эта опция где то использовалась дальше в компиляторе… Но ускорение таки заметно. OpenGL перекомпилировать - сек 5. С этой опцией программы с OpenGL запускаются моментально.


#28

а почему кнопку не сделать в таком случае, нежели галочку?

я как понимаю, это в редких случаях надо перекомпилировать все эти библиотеки


#29

Библиотеки это .dll . Rtl каким ставиться вместе с паскалем и уже не перекомпилируется, никогда.
А модули перекомпилировать - надо чтоб засунуть их в .exe . Если модули в .exe не засунет - .exe не запустится на компе где нет Rtl.


#30

Вроде все ясно.


#31

то есть как я понимаю, Rtl это библиотека содержащие в себе все стандартные модули и надо эти модули откомпилировать. Так ведь?


#32

Нет, в .exe суёт только те модули которые подключены по uses. И то, не целиком, а только те типы - которые были использованы в коде.

Ну и, компиляция из папки (ПКМ по файлу) всегда компилирует обычным способом, без Rtl (если явно не сделать $reference к Rtl).


#33

аа все, дошло, вот почему exe файлы работают после компиляции без модуля


#34

А вообще я сейчас посмотрел - .dll Rtl-а не существует в папке компилятора. То есть её вообще не ставит. Наверное, та галочка - какая то недоделанная фича.

И с OpenGL-ом больше потестил - то был единичный случай. В целом с галочкой и без - примерно одинаковое время компиляции.


#35

:grin:

вот и “интересные вещи” мы нашли


#36

В настройках есть соответствующая галочка (что-о связанное с паузой). Но это работать должно только при запуске без связи с оболочкой.

А оболочка — это окно вывода внутри IDE, ничего больше.


#37

Точно. Дырявая система!


#38

@Sun_Serega, у меня вывело 1.5 (но, только при явном указании цвета очистки экрана, иначе - всё нормально):

PascalABC.NET: версия 3.5.1, сборка 2257.


#39

1.5 заметил. Убрал


#40

Но обновления пока что нет. Или надо принудительно закачать и обновить?