:: Visual Foxpro, Foxpro for DOS
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
Гулин Федор
дока конечно бедна

Там каждый фикс расписан
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Ydin

Сообщений: 7648
Откуда: Киев
Дата регистрации: 16.12.2005
BOBAN
Там каждый фикс расписан
А где почитать?
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
VeterVFP

Сообщений: 413
Откуда: Москва
Дата регистрации: 26.12.2006
Ydin
BOBAN
Там каждый фикс расписан
А где почитать?
Тут (кликабелен каждый):
www.baiyujia.com



Исправлено 1 раз(а). Последнее : VeterVFP, 13.10.21 12:54
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Нельзя сказать что он вот прямо "написал VFP10" - потому то и документация такая. Правильнее сказать что он добавляет некоторые возможности и исправляет определённые ошибки - а в качестве основы всё тот же VFP - соответственно и исходная документация остаётся в силе Ну в той части что не противоречит его изменениям, конечно.

Один он там пилит это проект или у него есть какая-то команда - я не в курсе.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
Igor Korolyov
...
Один он там пилит это проект или у него есть какая-то команда - я не в курсе.

Думаю что один - всегда отвечает типа "я работаю над этим ... я проверю это" ни разу не было "мы".
Похоже работает в свое удовольствие, не обременяя себя сроками и обещаниями, но продуктивно )

Нам остается только наблюдать за этим, пока ждем 10.2 с поддержкой большой памяти.
Не знаю, может есть инфа на других форумах о планах,
не спрашивал его об этом, сами понимаете - вопросы о сроках - они неприятные


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
Igor Korolyov
Нельзя сказать что он вот прямо "написал VFP10"...

[attachment 35870 10.jpg]

Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
BOBAN
Igor Korolyov
Нельзя сказать что он вот прямо "написал VFP10"...

[attachment 35870 10.jpg]



Список исправлений и доработок весомый и думаю не уступает таковому например при переходе от VFP8 к VFP9

Который в более удобной для просмотра форме можно скачать отсюда :

www.baiyujia.com

и номер 10 вполне резонно имеет место быть, если не брать во внимание лицензионные соглашения

Чен, он не напрасно в VFPA оставил такую функцию :
= SYS(9018,0)
? Version()

которая показывает базовую версию : Visual FoxPro 09.00.0000.7423 for Windows

[attachment 35875 ]


------------------
Тяжело согнать курсором муху с монитора ...




Исправлено 1 раз(а). Последнее : Равиль, 19.10.21 13:58
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
Пост с foxite'а

Hello everyone,

I did some changes for VFP Advanced,
I think FoxPro will be faster to process large files and long strings.

There are some test results:


SYS(9900,9000-9006) Functions
=============================

VFPFORM.SCX: 32,600 KB
VFPFORM.SCT: 171,785 KB
RECCOUNT(): 300,000

------------------------------------------------------------------------------------------------------------------
| SYS(9900,9000-9006) Functions | Disable | Enable | Rate |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9000,0|1) - Enables or disables compiling files without packing memo. | 2131 | 82 | 26 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9001,0|1|2) - Enables or disables fast pack memo. | 1874 | 115|6 | 300:20:1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9002,0|1) - Enables or disables fast copy memo. | 41 | 3 | 14 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9003,0|1) - Enables or disables fast compile memo. | 267 | 66 | 4 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9004,0|1) - Enables or disables fast replace memo (1 memo field). | 18 | 1 | 18 : 1 |
| SYS(9900,9004,0|1) - Enables or disables fast replace memo (10 memo fields). | 338 | 61 | 5 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9005,0|1) - Enables or disables fast append memo. | 57 | 3 | 19 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9006,0|1) - Enables or disables fast select memo (into table). | 46 | 3 | 15 : 1 |
| SYS(9900,9006,0|1) - Enables or disables fast select memo (into cursor). | 4 | 2 | 2 : 1 |
------------------------------------------------------------------------------------------------------------------


TESTLARGEDBF.DBF: 9 GB
TESTLARGEDBF.FPT: 12 GB
RECCOUNT(): 100,000,000

------------------------------------------------------------------------------------------------------------------
| SYS(9900,9000-9006) Functions | Disable | Enable | Rate |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9000,0|1) - Enables or disables compiling files without packing memo. | ---- | ---- | ------ |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9001,0|1|2) - Enables or disables fast pack memo. | **** | 5100 | ****:1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9002,0|1) - Enables or disables fast copy memo. | 8460 | 540 | 16 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9003,0|1) - Enables or disables fast compile memo. | ---- | ---- | ------ |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9004,0|1) - Enables or disables fast replace memo (1 memo field). | 533 | 461 | 1.2 : 1 |
| SYS(9900,9004,0|1) - Enables or disables fast replace memo (10 memo fields). | 6160 | 1168 | 5 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9005,0|1) - Enables or disables fast append memo. | 8174 | 611 | 13 : 1 |
------------------------------------------------------------------------------------------------------------------
| SYS(9900,9006,0|1) - Enables or disables fast select memo (into table). | 8884 | 593 | 15 : 1 |
| SYS(9900,9006,0|1) - Enables or disables fast select memo (into cursor). | 6830 | 635 | 11 : 1 |
------------------------------------------------------------------------------------------------------------------



SYS(9900,9010-9038) Functions
=============================

LEN(): 10 MB
LOOP COUNT: 10000

---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9010-9038) Functions | Disable | Enable | Rate |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9010,0|1) - Enables or disables fast SUBSTR(), SUBSTRC() functions. | 32 | 0.02 | 1500 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9011,0|1) - Enables or disables fast LEFT(), LEFTC() functions. | 36 | 0.01 | 3600 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9012,0|1) - Enables or disables fast RIGHT(), RIGHTC() functions. | 32 | 0.02 | 1500 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9013,0|1) - Enables or disables fast UPPER() function. | 270 | 250 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9014,0|1) - Enables or disables fast LOWER() function. | 270 | 250 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9015,0|1) - Enables or disables fast PROPER() function. | 340 | 420 | 0.8 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9016,0|1) - Enables or disables fast LEN(), LENC() functions. | 63 | 0.01 | 6300 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9017,0|1) - Enables or disables fast EMPTY() function. | 52 | 0.01 | 5200 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9018,0|1) - Enables or disables fast VARTYPE() function. | 52 | 0.01 | 5200 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9019,0|1) - Enables or disables fast LTRIM() function. | 111 | 87 | 1.3 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9020,0|1) - Enables or disables fast RTRIM(), TRIM() functions. | 93 | 87 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9021,0|1) - Enables or disables fast ALLTRIM() function. | 110 | 87 | 1.3 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9022,0|1) - Enables or disables fast PADL(), PADR(), PADC() functions. | 108 | 107 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9023,0|1) - Enables or disables fast STUFF(), STUFFC() functions. | 81 | 77 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9024,0|1) - Enables or disables fast CHRTRAN(), CHRTRANC() functions. | 554 | 492 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9025,0|1) - Enables or disables fast STRTRAN() function. | 51000 | 50000 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9026,0|1) - Enables or disables fast AT(), AT_C(), ATC(), ATCC() functions. | 16 | 0.02 | 800 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9027,0|1) - Enables or disables fast RAT(), RATC() functions. | 20 | 0.02 | 1000 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9028,0|1) - Enables or disables fast ATLINE(), ATCLINE(), RATLINE() functions. | 19 | 0.02 | 950 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9029,0|1) - Enables or disables fast OCCURS() function. | 2100 | 1900 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9030,0|1) - Enables or disables fast GETWORDCOUNT() function. | 4100 | 3900 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9031,0|1) - Enables or disables fast GETWORDNUM() function. | 27 | 0.01 | 2700 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9032,0|1) - Enables or disables fast TRANSFORM() function. | 21 | 0.03 | 700 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9033,0|1) - Enables or disables fast TEXTMERGE() function. | 167 | 147 | 1.1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9034,0|1) - Enables or disables fast STREXTRACT() function. | 1800 | 1800 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9035,0|1) - Enables or disables fast STRCONV() function. | 207 | 205 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9036,0|1) - Enables or disables fast STRTOFILE() function. | 117 | 67 | 1.7 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9037,0|1) - Enables or disables fast SYS(2007) function. | 877 | 866 | 1 : 1 |
---------------------------------------------------------------------------------------------------------------------------
| SYS(9900,9038,0|1) - Enables or disables fast TYPE() function. | 16 | 0.01 | 1600 : 1 |
---------------------------------------------------------------------------------------------------------------------------



Best regards.

Chen
2021.11.26
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
По функции Proper наваял с замедлением. А так какие-то фантастические цифры встречаются.
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ума не приложу, зачем может понадобиться использовать Proper для 10Мб строки Да и upper/lower в этом отношении крайне сомнительны. А так - для некоторых случаев очень серьёзное ускорение - всякие самодельные json/xml/csv парсеры могут сильно ускориться за счёт этого. Надеюсь что стабильностью он не пожертвовал ради скорости


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
leonid

Сообщений: 3202
Откуда: Рига
Дата регистрации: 03.02.2006
Цитата:
SYS(9900,9010,0|1) - Enables or disables fast SUBSTR(), SUBSTRC() functions. | 32 | 0.02 | 1500 : 1 |

1.
a = repl("a", 10*2^20)
b = substr(a, 2, 1)

2.
a = repl("a", 10*2^20)
a = substr(a, 2)

3.
a = repl("a", 10*2^20)
b = substr(a, 2)

Вполне представляю, как первый вариант ускорить в 1500 раз. С бОльшим трудом, но могу представить, как ускорить второй вариант в 1500 раз. Но ни в жисть не поверю, что в 1500 раз можно ускорить третий вариант. Максимум в 2-3, ну может в 10, если MS - полное фуфло.


Igor Korolyov
Надеюсь что стабильностью он не пожертвовал ради скорости

Тут есть определенные сомнения. Понятно, что там, где сильное ускорение, он экономит на том, что не не резервирует дополнительную память и не делает туда копию исходной строки. Но MS эти копии неспроста делал. Я так понял, что это связано с тем, что Фокс переменные держит в динамической памяти, и работать с ними напрямую не так просто. Что-то мне помнится, что там нужно было в critical section заходить.
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
Сейчас скачал его тесты отсюда :
baiyujia.com

На старом ноуте погонял несколько тестов - результаты согласуются с ним - есть значительные ускорения, где заявлено.
Подождем когда все устаканится - 30 ноября уже было исправление.


leonid
Цитата:
SYS(9900,9010,0|1) - Enables or disables fast SUBSTR(), SUBSTRC() functions. | 32 | 0.02 | 1500 : 1 |

1.

a = repl("a", 10*2^20)
b = substr(a, 2, 1)

2.

a = repl("a", 10*2^20)
a = substr(a, 2)

3.

a = repl("a", 10*2^20)
b = substr(a, 2)

Вполне представляю, как первый вариант ускорить в 1500 раз. С бОльшим трудом, но могу представить, как ускорить второй вариант в 1500 раз. Но ни в жисть не поверю, что в 1500 раз можно ускорить третий вариант. Максимум в 2-3, ну может в 10, если MS - полное фуфло.

Если сравнивать варианты 1. и 3. - очевидна зависимость от длины извлекаемой подстроки.
Чен же заявляет rate 1500 в своем тесте при извлечении 1 символа.

1) Прогнал его тест по варианту 3.
результат 77,6 / 64,0 = 1,21

2) Сделал тест с извлечением произвольных не длинных подстрок (от 1 до 10000 символов)
результат 16,449 / 0,016 = 1028

[attachment 36001 Leonid.png]


*PROC test_substr_function
Set Step Off
Set Echo Off
Set Debug Off
Set Escape Off
Set Talk Off
Set Safety Off
_Screen.Visible=.T.
_Screen.WindowState=2
Set Exclusive Off
Set Multilock On
Set Collate To "MACHINE"
Close Databases All
Close Tables All
?
=Sys(9900,9010,0)
?"SYS(9900,9010) = "+Sys(9900,9010)
Local lnX, lcSTRING
*!* lcString = Replicate("1234567890",1000000) && Chen
lcSTRING = Repl("a", 10*2^20) && Leonid
lnLENGTH = Len(lcSTRING)
?Transform(lnLENGTH,"999,999,999")
lnSECS = Seconds()
For lnX = 1 To 10000
*!* lcVal = Substr(lcString,lnX,1) && Chen - здесь он извлекает один символ
*!* b = Substr(a, 2)
*!* lcVAL = Substr(lcSTRING, 2) && Leonid - извлекаем длинную подстроку с позиции 2
lcVAL = Substr(lcSTRING, lnX, lnX) && Leonid - извлекаем короткую подстроку с позиции lnX длиной lnX
Endfor
? "SUBSTR: " + Transform(Seconds() - lnSECS )
Wait
?
=Sys(9900,9010,1)
?"SYS(9900,9010) = "+Sys(9900,9010)
Local lnX, lcSTRING
*!* lcString = Replicate("1234567890",1000000) && Chen
lcSTRING = Repl("a", 10*2^20) && Leonid
lnLENGTH = Len(lcSTRING)
?Transform(lnLENGTH,"999,999,999")
lnSECS = Seconds()
For lnX = 1 To 10000
*!* lcVal = Substr(lcString,lnX,1) && Chen - здесь он извлекает один символ
*!* b = Substr(a, 2)
*!* lcVAL = Substr(lcSTRING, 2) && Leonid - извлекаем длинную подстроку с позиции 2
lcVAL = Substr(lcSTRING, lnX, lnX) && Leonid - извлекаем короткую подстроку с позиции lnX длиной lnX
Endfor
? "fast SUBSTR: " + Transform(Seconds() - lnSECS )
Wait
Close Databases All
Close Tables All
Return
* END OF PROC TEST_SUBSTR_FUNCTION.


------------------
Тяжело согнать курсором муху с монитора ...




Исправлено 2 раз(а). Последнее : Равиль, 03.12.21 20:12
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Каратаев

Сообщений: 3974
Откуда: Алматы
Дата регистрации: 04.12.2001
Я вот что-то не понял, что все уже купили платную версию? Вроде бесплатная не обновляется...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
Каратаев
Я вот что-то не понял, что все уже купили платную версию? Вроде бесплатная не обновляется...

для меня это был вопрос "жизни и смерти" - пришлось купить


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
Равиль, а тебе доступны свежие релизы бесплатной версии ? А то на сайте только от марта
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
BOBAN
Равиль, а тебе доступны свежие релизы бесплатной версии ? А то на сайте только от марта

Увы ... бесплатные версии как раз в марте и закончились.


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
of63

Сообщений: 25161
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
Но у тебя она есть!

Я ни на что не намекаю! Не потеряй ее, на всякий. Чен, всеже один воюет за ВФП, а тут ты тоже, законный владелец, (Звездных войн насмотрелся, мультяшных ) )



Исправлено 3 раз(а). Последнее : of63, 14.12.21 21:09
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
Чен может


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
BOBAN

Сообщений: 624
Откуда: Солигорск
Дата регистрации: 05.07.2004
Равиль
BOBAN
Равиль, а тебе доступны свежие релизы бесплатной версии ? А то на сайте только от марта

Увы ... бесплатные версии как раз в марте и закончились.

Написал я Чену с вопросом о развитии free версии. Он прислал мне архив от 13.12.2021 с последними изменениями по строковым функциям. Уж не знаю, отчего он на сайте не обновляет
Ratings: 0 negative/0 positive
Re: VFP ADVANCED
Равиль
Автор

Сообщений: 6547
Откуда: Уфа
Дата регистрации: 01.08.2003
BOBAN
...
Написал я Чену с вопросом о развитии free версии. Он прислал мне архив от 13.12.2021 с последними изменениями по строковым функциям. Уж не знаю, отчего он на сайте не обновляет

Класс ! Отличная новость - надеюсь и на сайте выложит !


------------------
Тяжело согнать курсором муху с монитора ...
Ratings: 0 negative/0 positive


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

On-line: 25 (Гостей: 25)

© 2000-2024 Fox Club 
Яндекс.Метрика