CRUD performance - вопрос о собеседовании

Это сильно зависит от реализации компилятора.

Однако это также зависит от того, что вы используете.

Давайте рассмотрим следующие функции:

bool foo1( const std::string v )
{
  return v.empty();
}
bool foo2( const std::string & v )
{
  return v.empty();
}

Эти функции реализованы в отдельном блоке компиляции, чтобы избежать встраивания. Затем: 1. Если вы передадите литерал для этих двух функций, вы не увидите большой разницы в характеристиках. В обоих случаях должен быть создан строковый объект 2. Если вы передадите другой объект std :: string, foo2 превзойдет foo1, потому что foo1 сделает глубокую копию.

Вкл. мой компьютер, используя g ++ 4.6.1, получил следующие результаты:

  • переменная по ссылке: 1000000000 итераций -> время прошло: 2.25912 сек
  • переменная по значению: 1000000000 итераций -> Истекшее время: 27.2259 сек
  • литерал по ссылке: 100000000 итераций -> пройденное время: 9.10319 сек
  • литерал по значению: 100000000 итераций -> время прошло: 8.62659 сек
0
задан user677571 18 January 2019 в 04:14
поделиться

2 ответа

Вопрос: У нас есть операции Get (id), Put (id, модель), Delete (id), Add (id, модель) в интерфейсе сервиса.

O (1) в TypeScript Map<Key,Value>: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

0
ответ дан basarat 18 January 2019 в 04:14
поделиться

Не совсем уверен насчет # 2, но для # 1 объект Javascript на самом деле является хэш-картой, поэтому поиск выполняется за O (1). Вы можете просто использовать объект, ключи которого представляют первичные ключи, идентифицирующие записи в нашем хранилище данных. Значением каждого ключа является сама запись.

0
ответ дан BrushyAmoeba 18 January 2019 в 04:14
поделиться
Другие вопросы по тегам:

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