Рейтинг темы:
  • 1 Голос(ов) - 1 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Мертвый код
#1
Предлагаю тему, где можно показывать участки не нужного кода, которые можно удалить или переписать в более быстрый вариант. Так как исходники обширные, много унаследовано другими сборками. Думаю тема будет интересна дотошным людям

Класс NewCrypt.java метод appendChecksum
Данное
appendChecksum
Участок, после цикла, является мертвым
PHP код:
<?php 
ecx
= raw[i] & 0xff;
ecx |= raw[i + 1] << 8 & 0xff00;
ecx |= raw[i + 2] << 0x10 & 0xff0000;
ecx |= raw[i + 3] << 0x18 & 0xff000000;


Такого рода кода очень много, мне это мурыжит глаза. Конечно один это участок не делает погоду, но если найти с десяток таких участков, в одном последовательном алгоритме, это может прибавить в скорости

Кому интересно, выкладывайте свое
Ответ
#2
ну большую часть таких фрагментов и само IDE обычно выделяет, предупреждая о "мертвом коде" или не используемых локальных переменных или приватных методах.
Ответ
#3
Gaikotsu Написал:ну большую часть таких фрагментов и само IDE обычно выделяет, предупреждая о "мертвом коде" или не используемых локальных переменных или приватных методах.

Ну если создать переменную и не использовать её, то ругается
Данный участок не подсветит, только если не прогрессивный алгоритм анализа, просто есть не тривиальные места

Потом этот участок кода, есть на всех сборках, а это довольно забавно
Ответ
#4
Gattsu Написал:Ну если создать переменную и не использовать её, то ругается
Данный участок не подсветит, только если не прогрессивный алгоритм анализа, просто есть не тривиальные места

Потом этот участок кода, есть на всех сборках, а это довольно забавно

Eclipse не подсвечивает, а IntelliJ IDEA подсвечивает. Вроде NetBeans тоже подсвечивает, но не факт (не проверял).
Таким образом можно найти множество кода на подобии:
[src='java']Player player = inst.getPlayer();
if (player == null)
return;
// тут какой-то код
if (какое-то условие) {
// тут какой-то код, player`у значение больше никакое не присваивается
if (player == null)
return;
// тут какой-то код
}[/src]
Ответ
#5
http://habrahabr.ru/post/198938/
http://www.ucdetector.org/

Полезно почитать.
Родился, живу и когда-нибудь умру.
Ответ
#6
ну чего же тогда у всех кривые сборки, ни одной нормальной?

тоже полезно почитать, в этой книги описываются эти алгоритмы и оптимизации
http://www.ozon.ru/context/detail/id/3829076/
Ответ
#7
Gattsu Написал:ну чего же тогда у всех кривые сборки, ни одной нормальной?

Ну потому что их разработкой должна заниматься целая команда человек из 50, а не 1 программист-самоучка по 5 часов в неделю на выходных, как это обычно бывает.
Ответ
#8
Не волнуйтесь. JVM ничуть не глупее вас, и может не просто найти мертвый код, но даже убрать его из памяти. Эта оптимизация называется Dead Code Elimination. Конечно всегда надо убирать излишний код, но практического смысла это несет немного.
Ответ
#9
ну ума то не прибавится. От прочитанного складывается вывод, что люди то и программировать не умеют и базовых алгоритмов не знают. Кто-то из присутствующих программировал на языках без сборщика мусора, с ручным управление памяти?
Интересно просто
С++
PHP код:
<?php 
char
* test() {
return
"test";
}

test();
Эксперты в чем проблема данного кода?

Так умиляет эта уверенность работы в системах, которые люди в глаза не видели. "Ты видишь суслика... но он есть"

Вот такой вопрос, вы жопу себе сами подтираете или она сама подотрется?

ПС Решил начать интересную тему для общего развития, но не тут то было.
Ответ
#10
Gattsu Написал:С++
PHP код:
<?php 
char
* test() {
return
"test";
}

test();
Эксперты в чем проблема данного кода?
утечка будет ))

Добавлено через 10 минут
PS кстати для с++ кодеров незаменимая функа

_CrtMemDumpAllObjectsSince

pss ну и с указателем потом осторожнее , char* по факту указывает на const char* запись по адресу указателя невозможна.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Мертвый пет Отто 3 1,522 07-13-2012, 01:46 PM
Последний пост: Zubastic

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)