Author Topic: Я не жужжу - понять просто хочу...  (Read 5533 times)

0 Members and 2 Guests are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #15 on: August 18, 2018, 07:18:03 PM »
А моя версия твоего теста какое время показывает?
2900мс
Я не ду... Потому и не бу...

Атеист

  • Guest
Re: Я не жужжу - понять просто хочу...
« Reply #16 on: August 18, 2018, 07:23:24 PM »
Чето много. У меня это время почти такое же, как для одного потока.
А HALT закомментирован? Это среднее время, или эффект первой итерации вмешался?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #17 on: August 18, 2018, 07:25:22 PM »
Чето много. У меня это время почти такое же, как для одного потока.
А HALT закомментирован? Это среднее время, или эффект первой итерации вмешался?
Среднее время. HALT не разлочивал - скопировал код и вставил, как был.
Я не ду... Потому и не бу...

Атеист

  • Guest
Re: Я не жужжу - понять просто хочу...
« Reply #18 on: August 18, 2018, 07:33:52 PM »
У тебя все таки три независимых приложения, и как распределяет ресурсы между ними Windows я не в курсе. Могу только предположить, что у винды есть свои средства оптимизации на этот случай, которые могут быть эффективней оптимизаций работающих внутри процесса Clickermann.exe.
Но потоки в КМ заявлены как независимые.

UPD: Еще раз проверил у себя твой первый скрипт для одного потока и мою версию для трех потоков - время абсолютно одинаковое. За исключением 500ms, которые как бы в зачет не идут. При этом все 3 потока успевают сработать. Потоки вещь! :)
« Last Edit: August 18, 2018, 07:42:56 PM by Атеист »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #19 on: August 18, 2018, 07:44:49 PM »
Но потоки в КМ заявлены как независимые.
Я просто знаю, как в delphi ведут себя независимые потоки. Начну с того, что я долго изучал эти потоки прежде, чем я написал первый. Это реально геморой для тех, кто это дело только осваивает. А про передачу переменных из тела основного скрипта в потоки я вообще промолчу... А если учесть, что при создании нового потока в скрипте кликера, настоящий поток в самом кликере еще должен создаться и динамически - это жопа... А если учесть, что этот - динамически созданный поток, еще и должен работать с компонентом TImage (чтобы онализировать картинку, которую кликер помещает в этот компонент), который находится на основной панели кликера и скрыт от наших глаз - это жопа в жопе... Я думаю, что уважаемый Джони просто бросил бы кликерман, если начал бы все это реализовывать ))
Я не ду... Потому и не бу...

Атеист

  • Guest
Re: Я не жужжу - понять просто хочу...
« Reply #20 on: August 18, 2018, 07:52:59 PM »
Я думаю, что уважаемый Джони просто бросил бы кликерман, если начал бы все это реализовывать ))

В том и прикол, что реализовал же таки. Прикинь, да? Мощь!  :)

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #21 on: August 18, 2018, 07:57:38 PM »
Я думаю, что уважаемый Джони просто бросил бы кликерман, если начал бы все это реализовывать ))

В том и прикол, что реализовал же таки. Прикинь, да? Мощь!  :)
Ну... Благодаря сегодняшним тестам, я все же склоняюсь к тому, что эти псевдопотоки в кликермане реализованы, как таймеры...
Я не ду... Потому и не бу...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #22 on: August 19, 2018, 01:37:35 PM »
Ну, раз вопрос был задан, то это не таймеры как потоки, а потоки как таймеры.
Они действительно не независимы* хотя бы потому, что работают с одной областью памяти. А именно переменными, гр.буфером и прочим. Следовательно нужны прерывания, поэтому потоки в КМ это не про быстродействие, это про распараллеливание. Заморочиться можно и сделать ТРУ потоки, но не в линейке 4.х. Там надо менять подход и синтаксис.
Насколько я помню примеры примитивных задач, которые адекватно можно решить ТОЛЬКО через [псевдо]потоки были мной приведены в поясняющей статье.

Quote
Должен работать с компонентом TImage (чтобы онализировать картинку, которую кликер помещает в этот компонент), который находится на основной панели кликера и скрыт от наших глаз
Здесь орнул)))

* не независимы полностью, но в ряде случаев могут выполняться параллельно не мешая друг другу
« Last Edit: August 19, 2018, 01:51:17 PM by Johnny »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #23 on: August 19, 2018, 02:40:27 PM »
Здесь орнул)))
Прости - я не понимаю слова - орнул )) Что оно означает? В смысле - я ошибся? Допускаю ) Ты мог сделать и без TImage. Держать в рабочей памяти TBitmap и работать с ним. Заморочестей конечно - каждый раз высвобождать память и все такое, но за то качественней. Но... Тогда мне еще больше не понятно. Если бы эти потоки были настоящими потоками, то зачем им всем работать с одним буфером для онализа. Тот Bitmap каждый поток мог бы создавать сам для себя и работать каждый со своим буфером. Только пойми меня правильно - я ни в коем случае не хочу как-то поставить под вопрос твою работу. Я уже который год пользуюсь этим кликером и не перестаю ему удивляться. Более того - именно с него началось когда-то мое программирование.
« Last Edit: August 19, 2018, 02:44:26 PM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #24 on: August 20, 2018, 09:32:01 AM »
Ну... Ладно... Может я и полез уже не туда. Если что - прости, Джонни...
Я не ду... Потому и не бу...

Johnny

  • Создатель
  • Герой форума
  • *
  • Posts: 593
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #25 on: August 20, 2018, 05:23:27 PM »
Quote
Прости - я не понимаю слова - орнул )) Что оно означает?
LOL 2.0

меня просто позабавило само предположение, что у нас могут быть ТАКИЕ архитектурные ходы... а второй TImage, стало быть, прячется уже на окне редактора со свойствой visible = false))
нет, у нас давно все на динамическом управлении памятью, за рамки которой мы периодически выпрыгиваем, ломая все и вся

Quote
Если бы эти потоки были настоящими потоками, то зачем им всем работать с одним буфером для онализа.
не только одним буфером, но и одним пространством имен переменных. причем если по поводу первого можно еще поспорить, то преимущества второго весьма очевидны. тот же один поток, который через флаги управляет пятью другими.
не ломая синтаксис и не пугая народ, текущее решение ИМХО оптимально. в конце концов, монитор у пользователя то один.
потоки делались не сколько как потоки, сколько как решение для тех, кто запускает по десять копий кликера для распараллеливания задач.
« Last Edit: August 20, 2018, 05:25:12 PM by Johnny »

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #26 on: August 21, 2018, 12:42:50 PM »
стало быть, прячется уже на окне редактора со свойствой visible = false))
Просто я именно так когда-то и делал  ;D

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

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: Я не жужжу - понять просто хочу...
« Reply #27 on: September 03, 2018, 10:01:31 AM »
Господь - программист, которому я просто поклоняюсь... )

https://www.youtube.com/watch?v=OstmdJ_yuT0&t=4s
Я не ду... Потому и не бу...