Size: a a a

2019 October 25

К1

Квас 1,0 in BZD • ЧАТ
Квас
источник

м

мишаня . in BZD • ЧАТ
Ну и то тоже
источник

MV

Michael Volkov 🐺 in BZD • ЧАТ
Москаль
Выкладывали книги "оптимизация программ С++" а есть С# ?
Я такой что-то даже в гугле не нашёл...
источник

К1

Квас 1,0 in BZD • ЧАТ
А у меня яндекс
источник

MV

Michael Volkov 🐺 in BZD • ЧАТ
Квас 1,0
А у меня яндекс
И как, он находит?)
источник

W

Wipe in BZD • ЧАТ
ranebull
@bzdn_admin, сколько всего книг на канале?)
Есть такая информация?
Как ответили ниже - около 2700, + совпадения и те которые были переделаны на новый лад - 2600, но это все приблизительные подсчеты :)
источник

r

ranebull in BZD • ЧАТ
Wipe
Как ответили ниже - около 2700, + совпадения и те которые были переделаны на новый лад - 2600, но это все приблизительные подсчеты :)
Все равно круто) Так держать)
источник

r

ranebull in BZD • ЧАТ
По DevOps книг мало, надо будет в предложку кинуть)
источник

E

Eugene in BZD • ЧАТ
Следует учесть, что в той книге про С++ речь идёт о микрооптимизации.  Типа использовать while do, вместо цикла for. Это имеет смысл для С++, так как там создаётся машинный код.

Такая оптимизация кода под С# не имеет смысла, так как компилятор все равно оба способа while и for оптимизирует под один единый байт код.

Микро оптимизация в С# будет только делать код менее читаемым, без какого либо улучшения в производительности. В байткоде не отражается эта микро оптимизация. Например, string a="hello world" и string a="hello "+"world" создаст один и тот же байткод.

Поэтому может и существует такая книга, но она будет наносить только вред, так как оптимизация байткода постоянно совершенствуется, и микро оптимизация со стороны программиста не влияет на байткод, но делает программу трудной для чтения/тестирования.
источник

MV

Michael Volkov 🐺 in BZD • ЧАТ
ranebull
По DevOps книг мало, надо будет в предложку кинуть)
Было бы здорово :)
источник

MV

Michael Volkov 🐺 in BZD • ЧАТ
А кстати про девопс, @bzdn_admin , я давно ещё скидывал в предложку книгу Бетси Бейер "Site Reliability Engineering" на русском, её не выкладывали?
источник

W

Wipe in BZD • ЧАТ
Michael Volkov 🐺
А кстати про девопс, @bzdn_admin , я давно ещё скидывал в предложку книгу Бетси Бейер "Site Reliability Engineering" на русском, её не выкладывали?
Я вроде старался не пропускать, не помню
источник

X

Xyr0 in BZD • ЧАТ
ranebull
По DevOps книг мало, надо будет в предложку кинуть)
кину что есть
источник

OG

Ok Google in BZD • ЧАТ
Michael Volkov 🐺
А кстати про девопс, @bzdn_admin , я давно ещё скидывал в предложку книгу Бетси Бейер "Site Reliability Engineering" на русском, её не выкладывали?
обчитаются своих орейли и деплоят где ни попадя.
источник

OG

Ok Google in BZD • ЧАТ
Eugene
Следует учесть, что в той книге про С++ речь идёт о микрооптимизации.  Типа использовать while do, вместо цикла for. Это имеет смысл для С++, так как там создаётся машинный код.

Такая оптимизация кода под С# не имеет смысла, так как компилятор все равно оба способа while и for оптимизирует под один единый байт код.

Микро оптимизация в С# будет только делать код менее читаемым, без какого либо улучшения в производительности. В байткоде не отражается эта микро оптимизация. Например, string a="hello world" и string a="hello "+"world" создаст один и тот же байткод.

Поэтому может и существует такая книга, но она будет наносить только вред, так как оптимизация байткода постоянно совершенствуется, и микро оптимизация со стороны программиста не влияет на байткод, но делает программу трудной для чтения/тестирования.
есть подозрение что таки разница будет ибо учитывая иммутабельность строк и факт что это ссылочный тип (В шарпах по крайней мере) в данном случае в первом примере переменной  будет присвоена ссылка на значение в памяти одной стринги, во втором же он создаст в памяти одну стрингу, вторую и лишь затем создаст третью в которой запишет значение после конкатенации и на которую и будет ссылаться переменная уже. Собственно класс stringBuilder для того что бы избежать подобных проблем и существует
источник

E

Eugene in BZD • ЧАТ
Ok Google
есть подозрение что таки разница будет ибо учитывая иммутабельность строк и факт что это ссылочный тип (В шарпах по крайней мере) в данном случае в первом примере переменной  будет присвоена ссылка на значение в памяти одной стринги, во втором же он создаст в памяти одну стрингу, вторую и лишь затем создаст третью в которой запишет значение после конкатенации и на которую и будет ссылаться переменная уже. Собственно класс stringBuilder для того что бы избежать подобных проблем и существует
Не будет. Где-то это уже обсуждалось. Можно погуглить. Stringbuilder в байткоде будет задействован в случае string a = "hello" + myVar + "world", если myVar не константа. В случаях же, a = 1+3 или a = "hello "+ "world" конкатенация автоматом происходит на уровне компиляции.

И даже локальные переменные, если они не меняются в одном scope, или константы (private static final) заменяются напрямую цифрами, без использования ссылок и стеков.

Поэтому опытные программисты и говорят - не занимайтесь микрооптимизацией. Занимайтесь написанием понятного кода. Во-первых, при нынешних скоростях - микрооптимизация это ерунда. Кроме того, всю микрооптимизацию за вас сделает сам компилятор. В принципе, это одна из причин, что C# и Java считаются высокоуровневыми языками.
источник

OG

Ok Google in BZD • ЧАТ
Eugene
Не будет. Где-то это уже обсуждалось. Можно погуглить. Stringbuilder в байткоде будет задействован в случае string a = "hello" + myVar + "world", если myVar не константа. В случаях же, a = 1+3 или a = "hello "+ "world" конкатенация автоматом происходит на уровне компиляции.

И даже локальные переменные, если они не меняются в одном scope, или константы (private static final) заменяются напрямую цифрами, без использования ссылок и стеков.

Поэтому опытные программисты и говорят - не занимайтесь микрооптимизацией. Занимайтесь написанием понятного кода. Во-первых, при нынешних скоростях - микрооптимизация это ерунда. Кроме того, всю микрооптимизацию за вас сделает сам компилятор. В принципе, это одна из причин, что C# и Java считаются высокоуровневыми языками.
Хм почитаю, спасибо за наводку.

А про микрооптимизацию абсолютно согласен. Забывают чаще всего о двух вещах:
1) Код читают и поддерживают люди а значит читабельность кода должна стоять во главе (в контексте ситуаций когда профит от оптимизации находится в рамках дозволенного бизнес правилами разрабатываемой системы, проще говоря работает, устраивает и норм, нечего крупицы выжимать)
2) преждевременная оптимизация есть зло. Ну тут думаю без пояснений понятно.
источник
2019 October 26

E

Eugene in BZD • ЧАТ
Нашел пример преобразования байткода C# в ассемблер. Любая оптимизация коту под хвост. Все равно сделает по-своему. 🙀 )))
источник

E

Eugene in BZD • ЧАТ
источник

м

мишаня . in BZD • ЧАТ
Eugene
На с# понятнее
источник