|
|
|
goto address
|
|||
|---|---|---|---|
|
#18+
Можно ли как нибудь узнать адрес - указывающий на goto label ??? Должна же быть какая - то магия (Не стоит переубеждать не использовать goto) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 19:27:14 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Кстати, на Си под GCC было решение такое Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 19:34:31 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Няшик, Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 20:41:39 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Няшик, В рамках языка никак. Надо либо вручную отсчитывать смещение внутри функции, либо делать как показал товарищ выше Может быть твою задачу можно решить как-то цивилизованно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 21:18:29 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, В рамках языка никак. А было бы замечательно, что бы компилятор сам вставлял адреса. Это было - бы очень полезно! Чем всякий там case полоумный SOFT FOR YOUНадо либо вручную отсчитывать смещение внутри функции Думал о таком.. Но если на 64 компиляторе собирать, значения же сместятся ? По адресу SOFT FOR YOUМожет быть твою задачу можно решить как-то цивилизованно Так на GCC это вполне цивилизованно. И на оптимизации найс ... Просто достать индекс из массива, и прыгнуть к нужному коду http://gcc.gnu.org/onlinedocs/gcc/Labels-as-Values.html ... А насчёт выше, я знал заранее - но интересовала автоматика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 21:27:46 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Няшик, У меня возникает ощущение, что ты городишь какую-то фигню, которая на раз-два решается стандартными средствами языка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2017, 23:47:52 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, У меня возникает ощущение, что ты городишь какую-то фигню, которая на раз-два решается стандартными средствами языка =_= Да кэп, решается ! На раз два три. А теперь думается как бы всё дело поторопить до сверх скорости. На гцц эта шняга обгоняет на 99% всё что можно написать на паскале и c++ билдере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 02:41:16 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Вот пример того, что генерит ГЦЦ Исходная функция Код: plaintext 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. А вот результат Код: 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. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. На деле это всё очень быстро работает. Быстрее всяких if - case (switch) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 02:55:49 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
А чем тебе массив процедур не канает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 03:35:54 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
rgreatА чем тебе массив процедур не канает? Вызов процедуры стоит дороже чем case. Порядком на 2 секунды. А вот тот код с гцц и дольше 1 то не работает.. Точнее 0,6 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 03:41:40 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Кстати, в Токио завезли настоящий clang ? Или он по прежнему не сможет скомпилировать код ниже ? Код: plaintext 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. Есть идея, просто напросто перейти на билдер, и там продолжить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 04:19:31 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Няшик, Спорим на бутылку пива, что на Delphi я напишу функцию, повторяющую функционал, но работающую в разы быстрее GCC-реализации? Может перестанешь маяться фигней? Что задача там у тебя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 08:42:42 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
defecator, Лучше быть начинающим великим оптимизатором, чем законченным нубом в них ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 08:43:30 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
НяшикВызов процедуры стоит дороже чем case. Порядком на 2 секунды. Сколько миллиардов вызовов было сделано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 08:45:51 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Спорим на бутылку пива, что на Delphi я напишу функцию, повторяющую функционал, но работающую в разы быстрее GCC-реализации? Может перестанешь маяться фигней? Что задача там у тебяНу дык он уже привел функцию. Напишешь "в разы быстрее"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 09:01:15 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
white_nigger, За бутылку пива я и не такое напишу )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 09:27:46 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Спорим на бутылку пива, что на Delphi я напишу функцию, повторяющую функционал, но работающую в разы быстрее GCC-реализации? Может перестанешь маяться фигней? Что задача там у тебя Даг это не фигня Никакая вовсе. Вряд - ли напишешь... Так как там в ГЦЦ обычный jmp от array к адресу ... Без всяких call и.т.д. jmp_originalНяшикВызов процедуры стоит дороже чем case. Порядком на 2 секунды. Сколько миллиардов вызовов было сделано? 1000000000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 09:52:39 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Няшик, Так спорим или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 09:57:06 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
НяшикМожно ли как нибудь узнать адрес - указывающий на goto label ??? Должна же быть какая - то магия (Не стоит переубеждать не использовать goto) Хотелось бы все же знать, зачем потребовался массив меток. Не в плане переубеждения, а в плане понимания и поиска подходящего решения ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:01:02 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Так спорим или нет? Почему бы и нет? Только без всяких asm Aleksandr SharahovНяшикМожно ли как нибудь узнать адрес - указывающий на goto label ??? Должна же быть какая - то магия (Не стоит переубеждать не использовать goto) Хотелось бы все же знать, зачем потребовался массив меток. Не в плане переубеждения, а в плане понимания и поиска подходящего решения ) Что бы быстро прыгать к месту, а не тратить время на реализацию case и if ... Которые на 99% медленнее чем просто прыгнуть по адресу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:11:10 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
НяшикЧто бы быстро прыгать к месту, а не тратить время на реализацию case и if ... Которые на 99% медленнее чем просто прыгнуть по адресу Это не ответ. Пример нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:14:36 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovНяшикЧто бы быстро прыгать к месту, а не тратить время на реализацию case и if ... Которые на 99% медленнее чем просто прыгнуть по адресу Это не ответ. Пример нужен. А по моему ответ. Просто функция будет не один миллион раз вызываться с нужным функционалом. По этому хотелось бы не видеть просадов... Гцц всё таки ведь за 0.6 сек это делал, вместо 4 на дельфи с case ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:23:47 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
НяшикAleksandr Sharahovпропущено... Это не ответ. Пример нужен. А по моему ответ. Просто функция будет не один миллион раз вызываться с нужным функционалом. По этому хотелось бы не видеть просадов... Гцц всё таки ведь за 0.6 сек это делал, вместо 4 на дельфи с case ну а дальше шитый код пойдём изучать :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:31:19 |
|
||
|
goto address
|
|||
|---|---|---|---|
|
#18+
НяшикА по моему ответ. Просто функция будет не один миллион раз вызываться с нужным функционалом. По этому хотелось бы не видеть просадов... Гцц всё таки ведь за 0.6 сек это делал, вместо 4 на дельфи с case Так никто не против. Хоть 100 мильенов. Если тебе не надо быстрее 0.6 сек, можешь не отвечать ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2017, 10:36:33 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39484120&tid=2041748]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 546ms |

| 0 / 0 |
