Какой более эффективен: Список <интервал> или интервал []

Широко используется mysqldump для создания резервной копии всей базы данных:

shell> mysqldump db_name > backup-file.sql

Вы можете загрузить файл дампа обратно на сервер следующим образом:

UNIX

shell> mysql db_name < backup-file.sql

То же самое в командной строке Windows :

mysql -p -u [user] [database] < backup-file.sql

PowerShell

C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"

MySQL командной строки

mysql> use db_name;
mysql> source backup-file.sql;

27
задан Handcraftsman 15 April 2013 в 23:16
поделиться

6 ответов

(list should be resizable) ? List<int> : int[]

List - это оболочка для int [] , размер которой изменяется по мере необходимости. С JIT-встраиванием они должны выполнять почти идентично, но JIT будет легче сократить дополнительную производительность от int [] , потому что это примитив CLI с выделенными инструкциями IL.

81
ответ дан 28 November 2019 в 04:02
поделиться

Просто для удовольствия я запустил это:

int cap = 100000;

Stopwatch sw1 = new Stopwatch();
sw1.Start();

int[] ix = new int[cap];
for (int x = 0; x < cap; x++)
{
    ix[x] = 1;
}

sw1.Stop();

Stopwatch sw2 = new Stopwatch();
sw2.Start();
List<int> iy = new List<int>(cap);
for (int y = 0; y < cap; y++)
{
    iy.Add(y);
}
sw2.Stop();

Console.WriteLine(cap.ToString() + "     int[]=" + sw1.ElapsedTicks.ToString());
Console.WriteLine(cap.ToString() + " List<int>=" + sw2.ElapsedTicks.ToString());

Console.ReadKey();

И получил следующее:

100000 int[]=1796542
100000 List=2517922

Я попробовал это в прошедших миллисекундах и получил 0 и 1 соответственно. Очевидно, что int [] намного быстрее, но если вы не говорите об огромных массивах, я бы сказал, что это просто номинал.

13
ответ дан 28 November 2019 в 04:02
поделиться

Список использует массив внутри, поэтому использование массива (правильное) всегда будет более (или по крайней мере) эффективным.

6
ответ дан 28 November 2019 в 04:02
поделиться

последний более эффективен.
В исходном коде List <> назван некоторыми массивами.
Например, List aa = new List ();
Обычно объявляется массив Type [] , длина которого является определенным числом. Другими словами, если вы объявляете List <> , значит, большое пространство уже использовано.
Если длина элемента списка List <> превышает длину, массив следует скопировать в другой, более крупный. Поэтому лучше не использовать List <> .
Лучше всего указать его длину.
List aa = new List (10);

7
ответ дан 28 November 2019 в 04:02
поделиться

Если вы точно знаете, сколько элементов будет в коллекции и не нуждаетесь ни в каких дополнительных функциях List И (то есть очень серьезная И ) производительность вызывает серьезную озабоченность , используйте int [] . В противном случае используйте List .

9
ответ дан 28 November 2019 в 04:02
поделиться

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

4
ответ дан 28 November 2019 в 04:02
поделиться
Другие вопросы по тегам:

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