Как Вы представляете свой код?

Внесите изменения в gredle, вы должны exclude также войти в maven.

packagingOptions {

    exclude 'META-INF/LICENSE'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/maven

}

, и если вы используете google-play-service, вы можете исключить annotation, например

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile ('com.google.android.gms:play-services:8.1.0'){
    exclude group: 'com.google.guava'
}
}

Или вы можете попробовать это также

configurations {
all*.exclude group: 'com.android.support', module: 'support-v4'
}
9
задан Donald Duck 16 August 2017 в 11:33
поделиться

9 ответов

Вы, вероятно, хотите различные инструменты для профилирования производительности и кодируете покрытие.

Для профилирования я предпочитаю Акулу на MacOSX. Это лишено Apple и очень хорошо. Если Ваше приложение является ванильным C, необходимо смочь использовать его, если можно овладеть Mac.

Для профилирования в Windows можно использовать LTProf. Дешевый, но не большой: http://successfulsoftware.net/2007/12/18/optimising-your-application/

(Я думаю, что Microsoft действительно стреляет themself в ногу, не предоставляя достойному профилировщику более дешевые версии Visual Studio.)

Для покрытия я предпочитаю Блок проверки допустимости Покрытия в Windows: http://successfulsoftware.net/2008/03/10/coverage-validator/ Это обновляет покрытие в режиме реального времени.

3
ответ дан 4 December 2019 в 15:30
поделиться

Если Вы делаете 'на металле', встроил систему 'C' (я не совсем уверен, что 'мобильный' подразумевал в Вашей регистрации), то у Вас обычно есть некоторый таймер ISR, в котором довольно легко выбрать адрес кода, в котором прерывание произошло (путем рытья назад в стеке или рассмотрения регистров ссылки или безотносительно). Затем это тривиально для создания гистограммы адресов в некоторой комбинации granularity/range-of-interest.

Это обычно затем не слишком трудно для фабрикации некоторой комбинации листов кода/сценария/Excel, которая объединяет количества гистограммы с адресами из файла символа/списка компоновщика, чтобы дать Вам информацию о профиле.

Если Вы - очень ограниченная RAM, это может быть что-то вроде боли для сбора достаточного количества данных для этого, чтобы быть и простым и полезным, но необходимо было бы сказать нам больше о платформе.

2
ответ дан 4 December 2019 в 15:30
поделиться

Я сделал это много. Если у Вас есть IDE или ICE, существует техника, которая прилагает некоторые ручные усилия, но работает бесперебойно.

Предупреждение: современные программисты ненавидят это, и я собираюсь получить downvoted. Они любят свои инструменты. Но это действительно работает, и у Вас не всегда есть хорошие инструменты.

Я принимаю в Вашем случае, код - что-то как DSP или видео, которое работает на таймере и должно быть быстрым. Предположим, что Вы работаете на каждой галочке таймера, подпрограмма A. Запишите некоторый тестовый код, чтобы выполнить подпрограмму в простом цикле, сказать 1000 раз или достаточно долго заставлять Вас ожидать по крайней мере несколько секунд.

В то время как это работает, случайным образом остановите его с клавишей Pause и выберите стек вызовов (не только счетчик команд) и запишите его. (Это - ручная часть.) Делают это некоторое количество раз, как 10. Однажды недостаточно.

Теперь ищите общности между образцами стека. Ищите любую инструкцию или команду вызова, которая появляется по крайней мере на 2 образцах. Будут многие из них, но некоторые из них будут в коде, который Вы могли оптимизировать.

Сделайте так, и Вы получите хорошее ускорение, гарантируемое. Эти 1 000 повторений займут меньше времени.

Причина Вам не нужно много образцов, Вы не ищете мелочи. Как то, если Вы видите конкретную команду вызова на 5 из 10 образцов, это ответственно в течение примерно 50% общего времени выполнения. Больше образцов сказало бы Вам более точно, каков процент, если Вы действительно хотите знать. Если Вы похожи на меня, все, что Вы хотите знать, то, где это, таким образом, можно зафиксировать его и идти дальше к следующему.

Сделайте это, пока Вы не сможете найти, что что-либо больше оптимизирует, и Вы будете в или около Вашей максимальной скорости.

6
ответ дан 4 December 2019 в 15:30
поделиться

Для сложных приложений я - большой поклонник Vtune Intel. Это - немного отличающееся мышление традиционному профилировщику, это оснащает код. Это работает путем выборки процессора для наблюдения, где указатель команд 1,000 раз в секунду. Это имеет огромное преимущество не требования любых изменений в Ваших двоичных файлах, которые почти всегда изменили бы синхронизацию того, что Вы пытаетесь измерить.

К сожалению, это бесполезно для .NET или Java, так как нет пути к Vtune для отображения, указатель команд к символу любят существует с традиционным кодом.

Это также позволяет Вам измерять все виды другого процессора/аппаратных средств центральные метрики, как часы на инструкцию, хиты/промахи кэша, хиты/промахи TLB, и т.д. которые позволяют Вам определить, почему определенные разделы кода могут занимать больше времени для выполнения, чем Вы ожидали бы только путем осмотра кода.

3
ответ дан 4 December 2019 в 15:30
поделиться

Google Perftools чрезвычайно полезен в этом отношении.

0
ответ дан 4 December 2019 в 15:30
поделиться

Я использую devpartner с MSVC 6 и XP

0
ответ дан 4 December 2019 в 15:30
поделиться

nProf - Свободный, делает это для.NET.

Сделали задание, по крайней мере достаточно для наблюдения 80/20. (20% кода, беря 80% времени)

1
ответ дан 4 December 2019 в 15:30
поделиться

Windows (.NET и Собственный компонент Exes): AQTime является большим инструментом для денег. Автономный или как плагин Visual Studio.

Java: я - поклонник JProfiler. Снова, может работать автономный или как Eclipse (или различные другие IDE) плагин.

Я полагаю, что у обоих есть пробные версии.

0
ответ дан 4 December 2019 в 15:30
поделиться

Как какие-либо инструменты собираются работать, если Вашей платформой является собственная ОС? Я думаю, что Вы делаете лучшее, Вы можете прямо сейчас

-2
ответ дан 4 December 2019 в 15:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: