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

Правильно понимаю, что расставив уровни доступа мы в том числе

оптимизируем скорость работы?

20 ответов

8 просмотров

Да

Ivan- Автор вопроса
Oleksandr Oliinyk
Да

а что если мы не поставим final перед классом и не унаследуемся от него, то компилятор сделает этот класс статик диспатч?

нет, это не влияет на скорость работы, не слушай, исключение open/public для межмодульного взаимодейтвия

Ivan- Автор вопроса
M53
если включен WMO

включенный WMO тоже съедает ресурсы?

Ivan
включенный WMO тоже съедает ресурсы?

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

Ivan- Автор вопроса
M53
ресурсы компилятора во время компиляции разве что…...

сейчас вычитал, при включенном wmo скорость компиляции наоборот уменьшается https://habr.com/ru/post/317298/

Ivan
сейчас вычитал, при включенном wmo скорость компил...

не знаю что там, это статья 2016 года, только что проверил на своем проекте, сборка с wmo 25 сек, без 20, икскод последняя бета

M53
нет, это не влияет на скорость работы, не слушай, ...

Может мы разные вещи имеем под «скоростью работы». Но все final, let, private, влияют, если не ошибаюсь на уровне выполнения, что тот на тот же класс final не будет распространяться ресурс, так как он точно не будет иметь наследников, и нет смысла тратить время на его иерархию которой собственно нет.

Oleksandr Oliinyk
Может мы разные вещи имеем под «скоростью работы»....

Читай что такое модификаторы доступа, Файнал к ним не относится, даже если бы относился, в релизе компилятор его ставит автоматически https://docs.swift.org/swift-book/LanguageGuide/AccessControl.html

M53
Читай что такое модификаторы доступа, Файнал к ним...

Я знаю, что такое модификаторы доступа. Я веду к тому, что есть же десятки статтей про performance optimization с помощью acces control. Все это фигня получается?

M53
Приведи пример статьи

Ты говоришь, что на оптимизацию влияют только модульные модификаторы?

Oleksandr Oliinyk
Ты говоришь, что на оптимизацию влияют только моду...

Да, потому что что с файнал, что с прайват, разницы нет, wmo включён по дефолту и он их расставит автоматически. А вот исключение как раз open и public, с open такое невозможно, потому что wmo работает только в рамках одного модуля

M53
Да, потому что что с файнал, что с прайват, разниц...

А именно вот этот абзац в статье получается фигня, или я ее не правильно понимаю? “When more experienced developers look at the code they write, they consider how it fits into the project they are working on. The implementation of a method is only part of the solution. Should it be possible for ViewController subclasses to override the fetchNotes() method? If the answer is no, then you should attach the private or fileprivate keyword. This not only makes sense in the context of access control, it also improves performance. Why is that? When the compiler inspects the fetchNotes() method, it realizes that it is declared as private, implying that the method cannot be overridden by subclasses. The compiler picks up this clue and safely infers final on the method declaration. Whenever the final keyword is attached to a method declaration, calls to that method can be dispatched statically instead of dynamically, resulting in a tiny performance gain.”

M53
Да, потому что что с файнал, что с прайват, разниц...

К тому же, разве если он их расставит автоматически, мы не избавим его от этой работы расставив все самостоятельно вручную?

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

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

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
7
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта