170 похожих чатов

А есть ли разница в скорости доступа по индексу к

элементам вектора, в сравнении с элементами сишного массива?

52 ответов

8 просмотров

Вектор - это сишный массив с методами

Если память уже выделена нет

Yalokin Kononov
А как же аллокации

Просто звучит стремно

нет, вообще одинаково

Можешь сам проверить с помощью сервиса quickbench

Flower Surgeon
нет, вообще одинаково

Вспомнил Анастасия тут недавно говорила что куча -- " более медленная память")

Beryl- Автор вопроса
Yalokin Kononov
Вспомнил Анастасия тут недавно говорила что куча -...

Ну если она не попадает в кеш цпу а стек попадает

Flower Surgeon
Стек — это не куча.

Физически - это одна и та же память

Serhii Herashchenko
Физически - это одна и та же память

Хотя может есть какой-то ембеддед, где они физически разделены

Beryl- Автор вопроса
Yalokin Kononov
Вспомнил Анастасия тут недавно говорила что куча -...

Стек 1 уровня.. Стек 2 уровня... И двухканальная куча. Так чтоль? 😁

Flower Surgeon
нет, вообще одинаково

Если думать о кешах то и это неправда может быть, кеши нечестно..

Нет разницы

Yalokin Kononov
А как же аллокации

Ну они ж не при доступе по индексу

Yalokin Kononov
Вспомнил Анастасия тут недавно говорила что куча -...

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

Nastya Medveda
Не было такого. Я говорила что при использовании с...

А что если я скажу, что в стандарте С++ нет ни стека, ни кучи?

Danya🔥
А что если я скажу, что в стандарте С++ нет ни сте...

Значит ли это что у процессора от такого исчезает кэш, а у компилятора способы работы с ним?

Nastya Medveda
Значит ли это что у процессора от такого исчезает...

Не значит. Это на самом деле значит, что низкоуровневая память в стиле C в современном C++ табу.

Danya🔥
А что если я скажу, что в стандарте С++ нет ни сте...

Это вы имеете ввиду, что в описание new везде просто storage, а что это и откуда берется - проблемы индейцев (которые, как известно шерифа не волнуют)?

Yalokin Kononov
Не компилятор кладет в кеш

Кладет не компилятор, но именно оптимизация кода компилятором повышает шансы попадания в кэш, или я не права?

Nastya Medveda
Кладет не компилятор, но именно оптимизация кода к...

Я не знаю, если честно про компилятор, но кажется , что это итак очевидно (говорим про однопоток, без когерентности и всего такого). Со стеком ядро работает постоянно и он находиться в лежащих рядом кеш линиях,так что и без оптимизации должен в кеш попадать

Yalokin Kononov
Да, если учитывать кэши ты права

Нет, ни фига она не права. Все какой-то бред лишь несут, один за другим.

Ilya Zviagin
Почему куча вдруг не может вкэш?

Сложный вопрос. Я думаю что он не совсем моего уровня. Вообще в итоговой компиляции объект указанный в heap может разместиться в стеке (и наоборот). Но тут уже вопросы где моя компетенция всё.

Nastya Medveda
Сложный вопрос. Я думаю что он не совсем моего уро...

Нет, не может. Не говоря уже о том, что нет никакого стека и хипа.

Nastya Medveda
Сложный вопрос. Я думаю что он не совсем моего уро...

ну вобще справедливо вобще он может и не разместиться

Ilya Zviagin
Почему куча вдруг не может вкэш?

чтоб сходить в кучу тебе нужен указатель

Ilya Zviagin
Почему куча вдруг не может вкэш?

может, но стек же и так и так будет лежать в кэше, потому что есть calling conventions и мы в любом случае со стеком будем работать, а чтобы из какого-то указателя что-то прочитать надо сначала из памяти эту переменную загрузить

Ilya Zviagin
Почему куча вдруг не может вкэш?

если у нас какая-то локалка попадает в одну кэш линию то она и так и так будет туда загружена при входе в функцию

Ilya Zviagin
не обязан

не обязан, но вероятность больше

Ilya Zviagin
Зачем тогда гнать пургу в чате?

Потому что я рассказываю так, как я это понимаю. Я не претендую на абсолютную истину поэтому вместо того, чтоб негативить, лучше бы объяснил.

Nastya Medveda
Потому что я рассказываю так, как я это понимаю. Я...

Ну, если ты не понимаешь, так не надо рассказывать.

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

Обсуждают сегодня

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
32
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
25
Книга Юрова В.И пойдёт для обучения?
Botsman
24
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
> Примечательно, что новый владелец удаляет из GitHub любые жалобы, указывающие на подозрительную активность или смену владельца, и, видимо, рассчитывает на то, что пользовате...
Alex Sherbakov
1
а мы ещё не созрели до того, чтобы создать отдельный чатик про настройку редакторов?
Cheese Syrowiecki
16
И ещё вопрос: можно ли типа как на дос как-то запариться и с помощью прерываний выводить текст, вместо функции printf ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
34
Всем привет! У меня почему-то по-разному отображается TListView в Debug и Release режимах (FireMonkey)! При запуске под Win приложения TListView заливается программо. в Debug ...
Александр COM
8
Ладно, ещё тупого спрошу. Код должен банально вывести значение регистра на консоль, на деле же не выводя ничего, просто оставляя нерабочую консоль (открыта, ничего не написан...
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
25
Hey there Which is the best Linux destro for developers (coding)? To my research on reddit, they said Linux mint is good for mid level spec and Ubuntu for high Lev hardwar...
Wiz 🪄
11
Карта сайта