Java, кажется, не использует больше чем два CPU

Если Вы хотите сделать это с cmd, затем следующее является тривиальным способом сделать это:

set count=0 & for %x in (*) do @(set /a count+=1 >nul)
echo %count%

Это принимает командную строку. В пакетном файле Вы сделали бы

@echo off
setlocal enableextensions
set count=0
for %%x in (*) do set /a count+=1
echo %count%
endlocal

который делает немного более хорошие вещи. Можно отбросить >nul в пакете, с тех пор set /a не отобразит результат, если выполнено от пакетного файла — он делает непосредственно из командной строки. Кроме того, % регистрируйтесь for цикл должен быть удвоен.

Я видел довольно много экземпляров, где люди пробуют изящные приемы find /c. Будьте очень осторожны с теми, поскольку различные вещи могут повредить это.

Частые ошибки:

  1. Используя find /c /v и попытайтесь найти что-то, что никогда не включается в имя файла, такой как ::. Не будет. Работа. Надежно. Когда консоль установлена на растровые шрифты затем, можно получить это символьная комбинация. Я могу включать символы в имя файла такой как :, ?, и т.д. в их полноширинных вариантах, например, которые будут затем преобразованы в их нормальные дубликаты ASCII, которые повредят это. При необходимости в точном количестве то не пробуйте это.

  2. Используя find /c и попытайтесь найти что-то, что всегда включается в имя файла. Очевидно, точка (.) плохой выбор. Другой ответ предлагает

    dir /a-d | find /c ":"
    

    который принимает несколько вещей о локали пользователя, не, все из которых, как гарантируют, будут верны (я оставил комментарий, детализирующий проблемы там), и возвращает один результат слишком много.

Обычно Вы хотите использовать find на dir /b который срезает весь материал неимени файла и избегает ошибок на единицу при счете тот путь.

Таким образом, изящный вариант был бы:

dir /b /a-d | find /c /v ""

который сначала произведет все имена файлов, одна строка каждый. И затем считайте все строки того вывода, которые не пусты. Так как имя файла не может быть пустым (если я не пропущу что-то, но Unicode не собьет это с толку согласно моим тестам).

1
задан 9 June 2011 в 01:51
1 ответ

Взгляните на этот документ об оптимизации для работы многоядерных систем

Существует "куча" материала там, всего от того, как структурировать код для наполнения как numactl для управления привязкой процессора.

4
ответ дан 3 December 2019 в 18:02

Теги

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