|
|
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёёKazantsev Alexeyёёёёё, Лучший учебник - папка Test. Ну да, вот пытаюсь заставить работать содержимое папки \Demos. Зараза, и демки-то не сразу соберешь. Например, в классе TdwsSymbolDictionary больше нет индексируемого свойства Items[index : ineger] : TSymbolPositionList. Доступ к элементам теперь через энумератор. Соответственно, этот код больше не работает: Код: pascal 1. 2. 3. 4. теперь нужно вот так: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 18:09 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ziv-2014А SmartMobileStudio можно использовать DWS в приложениях для мобильных платформ? В SMS приложения пишутся на DWS, который затем транслируется в JS. Запускается оно, понятное дело, везде где браузер работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 18:32 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
Интересно. В DWS, при декларации типов скриптовых объектов, которые реализуются в коде Delphi, предлагается реализовать соответствующий метод-событие *OnCleanUp(). Который автоматически вызывается при сбросе количества ссылок на конкретный объект данного типа в ноль (например, при выходе из области видимости или явно - путем вызова деструктора). То есть, объекты всех дельфийских классов типа TStringList и т.п., экспортированные в скрипт, нужно только создавать, не заботясь об их освобождении. Ну, или заботясь, если вдруг нужно резко освободить память. Классно, можно без try-finally обходиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 21:34 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, У меня аналогично сделано, только автоматом - если объект создается через вызов конструктора, он уничтожается. Плюс есть спец. функция для регистрации в случае других ситуаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2019, 21:55 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёёСпасибо, полезно, но не очень удобно и очень мало... :( Может так удобней будет DWScript ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2019, 01:35 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2019, 22:59 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Код покажи. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2019, 23:48 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
rgreatКод покажи. ;) Просто DWS умеет в JIT (код есть в демках, там же и сравнение с LaPe). Кстати, если скорость важна, есть ещё интересный движок LaPe , там даже работа с указателями имеется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 00:00 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
rgreatёёёёё, Код покажи. ;) ДэлфА'й Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. DWS Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:27 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
rgreat, Причем, никакого рисования внутри цикла тестирования не делается: SetPixel Delph SetPixel DWS Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. В DWS обращение к SetPixel() транслируется в ту же дельфийскую процедуру: SetPixel DWS Код: pascal 1. 2. 3. 4. -------- Процедура тестирования: Как тестировали Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:38 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
rgreat, и, это. Код не совсем равнозначен. Например, Integer в Dephi - это 32-битное знаковое. А в DWS интыджер - это 64-битное целое. И, как мне кажется, надо бы вынести время компиляции за пределы теста. Но тогда результаты совсем уж дикими будут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:41 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyrgreatКод покажи. ;) Просто DWS умеет в JIT (код есть в демках, там же и сравнение с LaPe). Кстати, если скорость важна, есть ещё интересный движок LaPe , там даже работа с указателями имеется. Да. :) Сейчас прогоню без JIT. И так, на моей машинке, с JIT: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:46 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, с отключенным JIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:48 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
Delphi все же в 18 раз быстрее... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 12:48 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
Еще интересна раскладка по ядрам процессора. Есть стойкое подозрение, что жит 'мухлюет' ядрами. И если распараллелить делфи код (что в общем можно элементарно сделать в одну строку буквально), то картина поменяется на обратную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 18:14 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
makhaonЕще интересна раскладка по ядрам процессора. Есть стойкое подозрение, что жит 'мухлюет' ядрами. И если распараллелить делфи код (что в общем можно элементарно сделать в одну строку буквально), то картина поменяется на обратную. Ты всерьез считаешь, что следует доказывать преимущество Delphi перед скриптовым движком? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 18:28 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Почему нет, если он компилируемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 18:31 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, Я не люблю нездоровых сенсаций :) И так. Один поток, 100 итераций, 2700 ms. 100 итераций + либа распараллеливания STParallel, режим pfAtomic. 400 ms. i7, 4 ядра x 2 Ht ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 18:41 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
makhaonёёёёё, Я не люблю нездоровых сенсаций :) И так. Один поток, 100 итераций, 2700 ms. 100 итераций + либа распараллеливания STParallel, режим pfAtomic. 400 ms. i7, 4 ядра x 2 Ht Можешь в исходниках DWS посмотреть, что там да как, если настолько подгорает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 19:04 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
ёёёёё, в jit то как залезть? раскладку по ядрам так и не показали, увы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 19:47 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
и нет, не подгорает. в отличие от сенсационстов я всегда ищу причины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 19:49 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
makhaonи нет, не подгорает. в отличие от сенсационстов я всегда ищу причины. В теории он может for распараллеливать, но вряд ли это делает без спроса, т.к. side эффекты могут быть неожиданными. Я добавил специальный parallel for синтаксис для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 19:53 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
The DWScript JIT compiler relies on SSE2 to outperform the Delphi 32bit compiler , its current main limitations are: JIT centers around floating point and a limited subset of integer and Boolean operations, the rest isn’t JITted yet. Function calls aren’t JITted at the moment, and neither are a variety of other statements. The JIT works with the same data structures as the interpreted engine, that means script debuggers and everything else works on JITted code as if it was still interpreted, but that also means the basic data unit is still the 16 bytes Variant at the moment. The JIT register allocator is currently limited to floating point (ie. no integer or pointer allocations). DWScript Integer type is 64bit sized, so for 32bit values, Integer performance is lower than what Delphi 32 can do, even though the JIT can generate typically faster code for it than the Delphi 32bit compiler does for Int64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 20:00 |
|
||
|
DelphiWebScript (DWScript), документация/описание
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyThe DWScript JIT compiler relies on SSE2 to outperform the Delphi 32bit compiler , its current main limitations are: JIT centers around floating point and a limited subset of integer and Boolean operations, the rest isn’t JITted yet. Function calls aren’t JITted at the moment, and neither are a variety of other statements. The JIT works with the same data structures as the interpreted engine, that means script debuggers and everything else works on JITted code as if it was still interpreted, but that also means the basic data unit is still the 16 bytes Variant at the moment. The JIT register allocator is currently limited to floating point (ie. no integer or pointer allocations). DWScript Integer type is 64bit sized, so for 32bit values, Integer performance is lower than what Delphi 32 can do, even though the JIT can generate typically faster code for it than the Delphi 32bit compiler does for Int64. Может, кто-нибудь когда-нибудь и для Delphi напишет... JIT - компайлер... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2019, 20:05 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39861947&tid=2038986]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 460ms |

| 0 / 0 |
