Трудно ли начать программировать на PB зная VB6

Раздел посвящен программированию с использованием Power Basic.
ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 06.09.2011 (Вт) 19:01

Трудно ли освоить Power Basic зная VB6? И насколько процесс изучения Power Basic сопоставим по трудозатратам на изучение того же VB.net например? В случае с Net практически нужно осваивать новую технологию т.е. Dot.net, а в случае с PB, как мне кажется все намного проще.
Бороться и искать, найти и перепрятать

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Димитрий » 06.09.2011 (Вт) 20:02

Наверно нет. Синтаксис один. Справка довольно хорошая. Много примеров кода на родном форуме.
Есть онлайн база кода - poffsbas.
Вообще-то, если Вы хорошо знаете winAPI, то на PB даже проще.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 06.09.2011 (Вт) 20:20

А как обстоят дела с отладкой? Так же просто как в VB или это довольно гемморойный процесс?
Вообще судя по описанию, PB оптимально подходит для написания небольших программ (утилит), что собственно мне и нужно.
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 06.09.2011 (Вт) 20:25

Что мне не нравиться в VB, так это то, что даже самое простое приложение, типа "Hello Word" занимет уйму оперативной памяти, по идее если PB не нужен рантайм как VB, то и приложение много оперативы не займет, а на практике это так?
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Трудно ли начать программировать на PB зная VB6

Сообщение jangle » 06.09.2011 (Вт) 21:12

ger_kar писал(а):Трудно ли освоить Power Basic зная VB6? И насколько процесс изучения Power Basic сопоставим по трудозатратам на изучение того же VB.net например? В случае с Net практически нужно осваивать новую технологию т.е. Dot.net, а в случае с PB, как мне кажется все намного проще.


Трудно, если не знаешь WinAPI и работу с указателями. Последняя версия PBWin по-сложности освоения вполне сопоставима с С++

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 1:18

ger_kar писал(а):Что мне не нравиться в VB, так это то, что даже самое простое приложение, типа "Hello Word" занимет уйму оперативной памяти, по идее если PB не нужен рантайм как VB, то и приложение много оперативы не займет, а на практике это так?

Это утверждение — сплошь заблуждение.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 07.09.2011 (Ср) 5:40

Хакер писал(а):Это утверждение — сплошь заблуждение.
" Это не утверждение, а предположение. Если исследовать адресное пространство процесса приложения на VB, то можно убедиться в том, что большую часть занимает импорт, а из импорта солидную часть занимает импорт из рантайма. Если его убрать, то по идее занимаемая процессом память должна быть существенно меньше, вот такой у меня был ход мысли. А как дело обстоит на практике и хотелось бы узнать у тех кто знаком с PB не по наслышке.
jangle писал(а):Трудно, если не знаешь WinAPI и работу с указателями. Последняя версия PBWin по-сложности освоения вполне сопоставима с С++
Ну фактически, трудно представить себе приложение даже на VB не использующее WinAPI, поэтому WinAPI и на VB активно применяется, и соответсвенно особой проблемы с его использованием я не вижу, а с указателями так вообще все просто. Другое дело, что в VB наряду с WinAPI активно используется COM, а я еще и WMI люблю. А PB COM можно использовать? И о какой конкретно последней версии PB идет речь, о 10?
Бороться и искать, найти и перепрятать

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 6:34

ger_kar писал(а):Если исследовать адресное пространство процесса приложения на VB, то можно убедиться в том, что большую часть занимает импорт, а из импорта солидную часть занимает импорт из рантайма.

Адресное пространство процесса — 4 гигабайта, из них большую часть (2 ГБ) занимает ядро. Меньшая часть (2 Гб минус 64 Кб) остаётся процессу для индивидуального использования.

Из этих оставшихся грубо говоря 2 гигабайт нижней части АП тот 1 мегабайт, который занимается рантаймом — это Математическая формула: \frac{1}{2047}.

Дальше. Если в АП есть страница, которая выделена процессу, то это одно из двух:
  • «Просто страница» (в просторечии)
  • Страницая, появившаяся в результате маппинга файла в АП (в просторечии)

Если по более нормальной терминологии:
  • Mapping/Image page
  • Private page

Если по критерию того, откуда страница подгружается в физическую память:
  • Mapping-file-backed
  • Swap-file-backed

Или иными словами:
  • Проекция страничного фрейма из какого-то отдельного файла.
  • Проекция страничного фрейма из файла подкачки (одного из, если их несколько)

Вот вторые получаются в результате вызова VirtualAlloc, и в сумме всем процессам не может быть выделено больше, чем суммарный размер всех файлов подкачки (если их несколько). Тут приходится говорить об Out-Of-Memory-ошибке.

А первые получаются в резульате подгрузки PE-образов или ручных файлмаппингом (MapViewOfFile), и суммарный объём ничем не ограничен (кроме памяти под служебную информацию, описывающую маппинги и строение АП каждого индивидуального процесса, а так же PDE-шек и PTE-шек).

Так что, даже если бы рантайм VB имел размер на один мегабайт, а один гигабайт, ничто, совсем ничто не помешало бы создать 200 процессов, в АП каждого из которых присутствовал гигабайтный рантайм. И это, к тому же, не помешало бы другим программам, требовательным к памяти, работать.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Трудно ли начать программировать на PB зная VB6

Сообщение jangle » 07.09.2011 (Ср) 10:02

ger_kar писал(а):Что мне не нравиться в VB, так это то, что даже самое простое приложение, типа "Hello Word" занимет уйму оперативной памяти, по идее если PB не нужен рантайм как VB, то и приложение много оперативы не займет, а на практике это так?


А сравнить не судьба? На PB хелловорд занимает меньше памяти

Код: Выделить всё
Option Explicit
Sub Main()
MsgBox "hello world"
End Sub


Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 10:06

jangle, заголовок колонки покажи.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Трудно ли начать программировать на PB зная VB6

Сообщение jangle » 07.09.2011 (Ср) 10:11

ger_kar писал(а):А PB COM можно использовать? И о какой конкретно последней версии PB идет речь, о 10?


Можно использовать. А также создавать COM DLL. Последняя версия 10.


jangle, заголовок колонки покажи.


Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 10:21

так вот, jangle, эта колонка, которая в английской версии называется Mem Usage, она отображает значение такого мало объективного параметра, как Working Set Size.

Этот параметр не зависит от того, сколько памяти выделено данному процессу, не зависит от того, какая часть АП занята подгруженным в АП модулями. Этот параметр всего лишь показывает, размер working-set-а, то есть сколько страниц конкретно сейчас находится в физической памяти. Он может произвольно меняться в любую сторону, даже если процессы ничего не делают, потому что ОС сама решает, какому процессу урезать WS (Working Set), а какому расширить.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Трудно ли начать программировать на PB зная VB6

Сообщение jangle » 07.09.2011 (Ср) 10:32

Хакер, как узнать сколько процесс занимает памяти?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 10:39

Начнём с уточнения вопрос. Что нужно узнать:
  • Суммарный объём зарезервированных страниц АП процесса? Напомню, что резервирование происходит блоками по 64К, что зарезервированные страницы недоступны, не занимают места ни в файле подкачки, ни в физической памяти, ни где-либо ещё.
  • Суммарный объём всех страниц АП, которые выделены (committed) вне зависимости от их типа (swap-backed / file-backed?)
  • Суммарный объём всех Private-страниц (то есть swap-backed) процесса, которые не принадлежат файл-маппингам, а все вместе дружно тратят файл подкачки?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 07.09.2011 (Ср) 19:14

jangle писал(а):А сравнить не судьба? На PB хелловорд занимает меньше памяти
Вот именно не судьба :)
Дело в том, что VB6 у меня есть в наличии, а PB нет как нет. Поэтому я сейчас пока решаю буду я использовать PB или нет, а если и буду, то какую версию, после чего собственно и буду искать оную и качать, если таковой не найдется, буду рассматривать вариант с покупкой. Пока как вариант думаю начать с 10.

Хакер писал(а):Этот параметр всего лишь показывает, размер working-set-а, то есть сколько страниц конкретно сейчас находится в физической памяти. Он может произвольно меняться в любую сторону, даже если процессы ничего не делают, потому что ОС сама решает, какому процессу урезать WS (Working Set), а какому расширить.
Вот с этим пожалуй я не соглашусь, так как скорее это параметр отражает, сколько занято памяти вообще, т.е. как физической так и виртуальной. Для этого достаточно произвести несложный эксперимент. Взять компьютер со 128 Мб оперативы на борту (можно виртуальным воспользоваться) и запустить на нем процесс, который будет занимать мегов этак под 200 (Можно запустить фотошоп и растровую картинку большого объема) При этом нетрудно установить, что занимая память по данным диспетчера ну не как не может быть физической, ибо ее просто физически нет в таком объеме, а ведь есть еще и другие процессы. Из этого я делаю вывод, что это не только оперативная память, а плюс к ней еще и виртуальная.

jangle Большое спасибо за проведенный опыт, для меня это было важно.
Бороться и искать, найти и перепрятать

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 07.09.2011 (Ср) 19:38

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

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 07.09.2011 (Ср) 20:17

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

Память.png

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Трудно ли начать программировать на PB зная VB6

Сообщение iGrok » 07.09.2011 (Ср) 20:29

ger_kar писал(а):Вот с этим пожалуй я не соглашусь

И зря.
Вот тебе статейка. Немного сумбурно, но в целом вполне можно понять, что к чему:
http://habrahabr.ru/blogs/windows/107605/
label:
cli
jmp label

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 07.09.2011 (Ср) 20:43

Внатуре зря ;) Сейчас провел эксперимент на виртуалке с 24мб памяти и почти все ушло на виртуалку, по сранению с картиной, которая была при 256 мб. Эка я опять лажанулся, ну да ничего это не страшно. За статью спасибо. Но как бы там ни было, а PB, по сравнению с VB, тратит память экономней.
Бороться и искать, найти и перепрятать

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Трудно ли начать программировать на PB зная VB6

Сообщение jangle » 07.09.2011 (Ср) 21:03

ger_kar писал(а): Пока как вариант думаю начать с 10.


Придется покупать, десятки в паблике нету, я сейчас сижу на 9.03

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Трудно ли начать программировать на PB зная VB6

Сообщение Хакер » 07.09.2011 (Ср) 22:06

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

Нифига себе. Есть основание не доверять тому, что я пишу? Нда...
Я тебя уверяю, значение этой колонки получается из структуры SYSTEM_PROCESS_INFORMATION, из её поля WorkingSetSize.

Код: Выделить всё
    if (m_MemUsage != pInfo->WorkingSetSize / 1024)
    {
        m_fDirty_COL_MEMUSAGE = TRUE;
        m_MemUsage = pInfo->WorkingSetSize / 1024;
    }

Код: Выделить всё
                    case COL_MEMUSAGE:
                        Int64ToCommaSepKString(LONGLONG(pProcInfo->m_MemUsage), plvitem->pszText, plvitem->cchTextMax);
                        break;


Этого достаточно?

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

[/quote]
Ты хоть сам понимаешь смысл написанного? На лицо полное непонимание принципов работы с памятью.

ц
ger_kar писал(а):Но как бы там ни было, а PB, по сравнению с VB, тратит память экономней.

Слушай, нет такого понятия, как «тратит память». Я привёл выше три критерия, которые можно измерить и сравнить, и которые имеют практическое значение. Можно говорить о количество не-свободных страниц АП, вне зависимости от типа занятости. Можно посчитать все Private-страницы, все Image/Mapped-страницы. Об этом можно поговорить. А не о эфемерных показателях.

Я предполагаю, что у VB по всем параметрам будет больше, потому что действительно рантайм инициализируемый, и занимает какую-то память, по сравнению с PB, который просто всё равно, что Си, если бы в нём макросы позволили обернуть бы весь Си в VB-подобный синтаксис.

При этом надо понимать, что некоторые параметры вообще не делают погоду, некоторые её делают в безумно незначительной степени, и более того, применив к обоим хеллоувордам утилиту editbin с одним хитрым параметром, картинку можно обернуть не то, что в противоположенную сторону, а ещё усилить разницу до 100 раз.

Хеллоуворд — не показатель.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Трудно ли начать программировать на PB зная VB6

Сообщение ger_kar » 07.09.2011 (Ср) 22:47

Хакер писал(а):Нифига себе. Есть основание не доверять тому, что я пишу? Нда...
Оснований не было, но почему-то закралось сомнение ;) Но оно уже разрешилось :)
Хакер писал(а):Ты хоть сам понимаешь смысл написанного? На лицо полное непонимание принципов работы с памятью.
Это точно.
Хакер писал(а):Слушай, нет такого понятия, как «тратит память». Я привёл выше три критерия, которые можно измерить и сравнить, и которые имеют практическое значение. Можно говорить о количество не-свободных страниц АП, вне зависимости от типа занятости. Можно посчитать все Private-страницы, все Image/Mapped-страницы. Об этом можно поговорить. А не о эфемерных показателях.
Я бы сказал о колхозных показателях, для меня все намного проще: Если не вдаваться в дебри, в которых я действительно не силен, то вполне можно обойтись тем, что есть компьютер, обладающий определенными ресурсами, в т.ч. и оперативной памятью. И есть ОС и приложения расходующие эту память. Системы бывают разными и память расходуют по разному, тоже самое и с приложениями. Есть маленькие и юркие, а есть достаточно прожорливые. По это критерию их можно сравнить. Все очень просто и понятно, хотя и не научно. С другой стороны не всегда правильное и научное бывает понятным и доступным.
Хакер писал(а):При этом надо понимать, что некоторые параметры вообще не делают погоду, некоторые её делают в безумно незначительной степени, и более того, применив к обоим хеллоувордам утилиту editbin с одним хитрым параметром, картинку можно обернуть не то, что в противоположенную сторону, а ещё усилить разницу до 100 раз.
Ну речь то про стандартные условия, без наворотов и извращений, а так то да...
Бороться и искать, найти и перепрятать

bon818
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 267
Зарегистрирован: 29.08.2009 (Сб) 4:49
Откуда: Ташкент

Re: Трудно ли начать программировать на PB зная VB6

Сообщение bon818 » 13.10.2011 (Чт) 1:11

тем кто начинает изучать PB советую

машинный перевод

gbSnippets 2.0
gbSnippets - удобный способ свободного пользования исходного кодового библиотекаря для программистов PowerBASIC. Это приходит с библиотекой почти 1000 кодовых примеров для языка PowerBASIC и обеспечивает характеристики поиска, которые позволяют Вам, чтобы быстро располагать код, который Вам нужно.

Загрузка (v2.13, 2.5MB)

http://www.garybeene.com/sw/gbsnippets.htm


Вернуться в Power Basic

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

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

    TopList  
cron