Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

VCL2MCK   Найти похожие ветки 

 
sff ©   (2006-02-10 09:55) [0]

Можно ли переделать (как нибудь полегче) существующий VCL проект  в MCK проект?


 
Barloggg   (2006-02-10 10:41) [1]

хмм... а куда делся BaryVetal?
он же вроде занялся конвертером?

А вообще недоконвертер есть, где-то в архивах.


 
Vedun   (2006-02-10 18:56) [2]

Конвертер уже существует. И даже конвертирует прстые проекты. Однако работы еще много. Некоторое время назад BaryVetal приостановил работу над проектом. Не знаю, как обстоят дела сейчас. Надо-бы с ним связаться...


 
Vedun   (2006-02-10 19:02) [3]

Только конвертер переделывает VCL не в MCK, а в чистый KOL.


 
Thaddy   (2006-02-10 22:09) [4]

As it should be ;)

Serious: that would be a VERY difficult thing to do, since you have to maintain and convert two sets of files: one the mirror set for the VCL and the other the plain kol project.

I am working for years now to create a 100% KOL solution, but I may  grow a beard longer than Vladimir"s before it is finished ;)
Two way tools for KOL without MCK is almost not possible without RTTI, although the windows API class level has some possibilities with get/set windowlong and my small recreate routine for KOL. Let alone with MCK.


 
BaryVetaL ©   (2006-02-13 10:02) [5]

Возвращаюсь... :-)

Конвертор пришлось не надолго отложить, просто я был у научного руководителя (кто не знает о чем я: у меня диплом по оптимизации программ на Delphi) и он очень доволен той работой которую я проделал, а так волки сыты, то и овцы не временно не думают про конвертор :-)))

На днях выложу на всеобщее обозрение.

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


//  Пример:
//procedure TForm1.Button1Click( Sender: TObject );
//var
//  S: string;
//  i: Integer;
//  j: Integer;
//begin
//  Edit1.Text := "0";
//  i := 0;
//  j := GetTickCount;
//  while i <= 999999 do begin
//    ProfilerStart( "IntToStr" );
//    S := IntToStr( i );
//    ProfilerEnd( "IntToStr" );

//    ProfilerStart( "Цикл while" );
//    while Length( S ) <> 6 do
//      S := "0" + S;
//    ProfilerEnd( "Цикл while" );
//
//    ProfilerStart( "Главное условие" );
//    if StrToInt( S[ 1 ] ) + StrToInt( S[ 2 ] ) + StrToInt( S[ 3 ] ) = StrToInt( S[ 4 ] ) + StrToInt( S[ 5 ] ) + StrToInt( S[ 6 ] ) then begin
//      Edit1.Text := IntToStr( StrToInt( Edit1.Text ) + 1 );
//    end;
//    ProfilerEnd( "Главное условие" );
//
//    ProfilerStart( "Увеличение ProgressBar" );
//    ProgressBar1.Position := Trunc( i * 100 / 999999 );
//    ProfilerEnd( "Увеличение ProgressBar" );
//
//    ProfilerStart( "Application+Inc(i)" );
//    Application.ProcessMessages;
//    i := i + 1;
//    ProfilerEnd( "Application+Inc(i)" );
//  end;
//  Label2.Caption := IntToStr( GetTickCount - j );
//  ProgressBar1.Position := 0;
//  ShowProfiler;
//end;
//  Результат:
//
// Результат работы профайлера
// Файл: C:\Program Files\Borland\Delphi6\Projects\Diplom\Задачи на оптимальность в диплом\Неоптимальная\Project1.exe
// --------------------------------------------------------------
//| Секция       | Application+Inc(i)
//| Мин время    | 0.000001 сек
//| Макс время   | 0.001462 сек
//| Средн время  | 0.000006 сек
//| Вызовов      | 1000000
//| Общее время  | 5.802796 сек
// --------------------------------------------------------------
//| Секция       | Увеличение ProgressBar
//| Мин время    | 0.000004 сек
//| Макс время   | 0.006566 сек
//| Средн время  | 0.000004 сек
//| Вызовов      | 1000000
//| Общее время  | 3.954001 сек
// --------------------------------------------------------------
//| Секция       | Главное условие
//| Мин время    | 0.000003 сек
//| Макс время   | 0.001522 сек
//| Средн время  | 0.000006 сек
//| Вызовов      | 1000000
//| Общее время  | 5.743231 сек
// --------------------------------------------------------------
//| Секция       | Цикл while
//| Мин время    | 0.000001 сек
//| Макс время   | 0.001506 сек
//| Средн время  | 0.000001 сек
//| Вызовов      | 1000000
//| Общее время  | 1.260588 сек
// --------------------------------------------------------------
//| Секция       | IntToStr
//| Мин время    | 0.000002 сек
//| Макс время   | 0.001015 сек
//| Средн время  | 0.000002 сек
//| Вызовов      | 1000000
//| Общее время  | 2.430998 сек
// --------------------------------------------------------------
//
// - - - - - - - - - - - - - Диаграмма - - - - - - - - - - - - - -
// --------------------------------------------------------------
//Application+Inc(i)     |******************************************************************************* *********************100%
//Увеличение ProgressBar |********************************************************************68%
//Главное условие        |******************************************************************************* *******************98%
//Цикл while             |*********************21%
//IntToStr               |*****************************************41%
//
// Приведенная диаграмма показывает продолжительность работы каждого блока


Это жуть какой неоптимальные подсчет!
Но наглядно показывает что занимает больше всего времени...

Модуль может работать как с VCL так и с KOL. Саму идею спер у одного профилировшика jdPro кажется... Но мне очень не нравилось как он работал, да и отчет получался не очень... А тут... Единственное что еще хотелось бы подправить это может как нибудь оптимизировать сам модуль :-) Туда дальше сделаю. Ладно ссылка на модуль:
http://www.rfms.adygnet.ru/Profiler.rar
Убедительная просьба если внесете в модуль какие нибудь изменения не ленитесь напишите мне...

PS для гуру: можете не смотреть если вы в программировании ас, то такие штуки вам ни к чему. У аса в голове ответ. А профайлер предназначен для новичков...



Страницы: 1 вся ветка

Форум: "KOL";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.052 c
15-1162541609
ХОТТАБЫЧ
2006-11-03 11:13
2006.11.26
ГДЕ СКАЧАТЬ?


15-1162757652
ProgRAMmer Dimonych
2006-11-05 23:14
2006.11.26
А как вообще в Беларуси обстоят дела...


15-1163062444
AVELINA
2006-11-09 11:54
2006.11.26
помогите инфой про wwExpandButton, plz...


1-1160995519
vegarulez
2006-10-16 14:45
2006.11.26
Народ, подскажите компоненту для обмена по протоколу HTTPS.


2-1162462915
Megabyte
2006-11-02 13:21
2006.11.26
Вопрос проектам, использующим пакеты(packages)?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский