Медленные вызовы для закрытия прокси - PullRequest
3 голосов
/ 17 декабря 2010

У меня есть приложение в clojure, интенсивно использующее Java-фреймворк под названием Vaadin. Vaadin использует несколько обратных вызовов, используя функцию «прокси» Java в clojure. Тем не менее, каждый раз, когда прокси вызывается в функции замыкания, происходит значительная задержка (иногда 100 сс). Можно ли как-нибудь ускорить это?

1 Ответ

6 голосов
/ 17 декабря 2010

Насколько я понимаю, новый макрос reify работает быстрее, чем proxy. Вы можете использовать его, если вам нужно реализовать только один интерфейс.

Например, если вам нужно реализовать java.awt.event.ActionListener, вы можете использовать код, подобный следующему:

(import 'java.awt.event.ActionListener 'javax.swing.JButton)
(let [a-button (JButton. "Click Me")]
  (.addActionListener a-button
    (reify ActionListener
      (actionPerformed [this ev] (comment do something interesting)))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...