сравнительный тест и причина для различия между c# и Java

в методе onCreate добавьте setHasOptionMenu ()

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

Затем переопределите ваш в onCreateOptionsMenu

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    menu.add("Menu item")
            .setIcon(android.R.drawable.ic_delete)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
}
5
задан tddmonkey 23 June 2009 в 13:04
поделиться

3 ответа

Во-первых: в Java вы используете кодировку платформы по умолчанию. Это вполне может быть фиксированная кодировка «один байт на символ», которая явно будет проще, чем использование UTF-8, которое .NET делает по умолчанию.

Кроме того, вы пишете два ] символы новой строки в .NET и только один в Java.

Одна вещь, которую нужно проверить, - это привязка к процессору или оператору ввода-вывода. Я ожидал , что это будет связано с вводом-выводом, но я определенно был удивлен раньше.

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

8
ответ дан 18 December 2019 в 14:50
поделиться

Я не вижу здесь проблем с кодом. Некоторые возможности: возможно, вы запускали код C # в режиме отладки? Возникла проблема с кешированием файлов. Файл данных C # работал с сильно фрагментированной областью диска. Я бы не ожидал половинной скорости от такой простой программы на C #.

Edit: Я пробовал обе версии на 10439-байтовом blah.txt. Сгенерированный файл имел длину 1 043 900 байт.

Время C # (CTRL + F5) составляло 18 секунд
Время C # (F5) составляло 22 секунды
Время Java составляло 17 секунд.

Оба приложения потребляли около 40% процессорного времени, половина из которых приходилась на время ядра.

Edit2: Ограничение ЦП связано с тем, что код постоянно открывается, закрывается и записывает небольшие фрагменты данных. Это вызывает множество переходов между управляемым и собственным режимом ядра и режимом пользовательского ядра.

Спецификация моей системы: Core 2 Duo 2,4 ГГц, 2 ГБ ОЗУ 800 МГц, WinXP SP3

3
ответ дан 18 December 2019 в 14:50
поделиться

Медленная часть тестов выглядит так, как если бы это была ситуация, когда один файл многократно открывается, оформляется, выполняется небольшая запись и снова закрывается. Не полезный тест. Очевидные различия заключаются в том, насколько велики буферы (при однократной записи они фактически не нужны) и синхронизируется ли полученный файл с диском.

2
ответ дан 18 December 2019 в 14:50
поделиться
Другие вопросы по тегам:

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