На настольной стороне не имеет значения, если метод перегружается или нет, они подвергаются дополнительному уровню абстракции через таблицу указателя метода (Таблица виртуальных методов), что означает, что примерно 2 дополнительной памяти прочитывает косвенность перед вызовом метода, сравненным не виртуальные методы на незапечатанных классах и не последних методах.
[Как интересный факт, на компактной версии 1.0 платформы перегревание больше, поскольку это не использует таблицы виртуальных методов, но просто отражение, чтобы обнаружить, что правильный метод выполняется при вызове виртуального метода.]
Также виртуальные методы, намного менее вероятно, будут кандидатами на встраивание или другую оптимизацию как последний вызов, чем не виртуальные методы.
Примерно это - иерархия производительности вызовов метода:
Не виртуальные методы < Виртуальный Metods < Методы интерфейса (на классах) < отправка Делегата < MethodInfo. Вызовите < Ввести. InvokeMember
, Но ни одно из этих последствий производительности различных механизмов отправки не имеет значения, если Вы доказанный это измерение ;) (И даже затем последствия архитектуры, удобочитаемость и т.д. могла бы иметь большой вес, на котором к выбрал)
Вы можете определить плагин с некоторыми launchShortcuts
в нем.
Этот поток является хорошей иллюстрацией.
Но чтобы связать его, вам нужно будет определить выполняющуюся команду эту конфигурацию и свяжите эту команду с ключом (как в этом файле конфигурации plugin.xml
)
определение ярлыка конфигурации запуска:
<shortcut id="org.maven.ide.eclipse.pomFileAction"
category="org.maven.ide.eclipse"
class="org.maven.ide.eclipse.actions.ExecutePomAction"
icon="icons/m2.gif"
label="%m2.popup.pomFile.label"
modes="run,debug">
<contextualLaunch>
<contextLabel label="%m2.popup.pomFile.label" mode="run"/>
<contextLabel label="%m2.popup.pomFile.label" mode="debug"/>
<enablement>
<with variable="selection">
<count value="1"/>
<iterate>
<and>
<test property="org.maven.ide.eclipse.launchable"/>
<adapt type="org.eclipse.core.runtime.IAdaptable"/>
</and>
</iterate>
</with>
</enablement>
</contextualLaunch>
</shortcut>
Затем команда:
<extension point="org.eclipse.ui.commands">
<command id="org.maven.ide.eclipse.pomFileAction.run"
categoryId="org.eclipse.debug.ui.category.run"
name="%m2.shortcut.description.run"
description="%m2.shortcut.description.run"/>
...
</extension>
Затем привязка клавиш для сочетания клавиш:
<extension point="org.eclipse.ui.bindings">
<key sequence="M3+M2+X M"
contextId="org.eclipse.ui.globalScope"
commandId="org.maven.ide.eclipse.pomFileAction.run"
schemeId="org.eclipse.ui.defaultAcceleratorConfiguration"/>
</extension>
Мне удалось это сделать с помощью Практически макроса - см. этот поток .