Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14

Есть ли смысл в настоящее время (середина 2020-х) создавать алгоритмы, которые экономят память в ущерб времени?

04.06.2024, 18:40. Показов 2519. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Актуально ли это? Речь не идет об O(n3) памяти - только в пределах до O(n) с не слишком большими коэффициентами. Речь также не идет о нишевых алгоритмах в стиле решета Аткина. Речь также не идет о старых ноутбуках, на которых можно ждать несколько часов, зато не вылетит из-за недостатка памяти. Речь также не идет о расходах огромного количества памяти впустую - именно о типичной ситуации, когда экономия времени увеличивает расходы памяти, и наоборот. Речь идет об обычных, повседневных приложениях, таких как браузер, офис, архиватор, IDE с любимыми языками (у нас же тут форум программистов? - для них IDE - повседневность?) В одной из предыдущих моих тем мне написали, потребляют ли методы моей библиотеки много памяти, и я так понял, что это кому-то показалось плохо. Насколько я знаю, в последние десятилетия объемы памяти растут намного быстрее, чем тактовая частота процессоров, и даже если кому-то не хватит "чистой" оперативной памяти, у большинства сейчас большие и быстрые NVMe SSD, на которых всегда можно расширить количество памяти. И насколько я понимаю, время ожидания для большинства важнее, чем несколько гигабайт ОЗУ/подкачки. Предлагаю обсудить.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2024, 18:40
Ответы с готовыми решениями:

Есть ли смысл создавать магазин
Добрый день! Тема у меня будет 2-х стороннего характера. У меня есть одна думка. Хочу попросить написать интернет сайт по продаже...

Есть ли смысл создавать процедуры? IBE и Delpi 7
Доброго времени суток. Я выполняю курсовую по бд, созданной в ibexperte и затем переношу в delphi При просмотре разных видео по...

Есть ли смысл разгонять память?
Здравствуйте! У меня стоит Ryzen 5 2600x и CORSAIR Vengeance LPX CMK8GX4M1A2400C14 DDR4 - 8Гб 2400Mhz , на материнке Gigabyte B450M DS3H. ...

42
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,043
05.06.2024, 05:49
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Есть ли смысл в настоящее время (середина 2020-х) создавать алгоритмы, которые экономят память в ущерб времени?
Смысл определяется решаемой задачей (прикладной) и её требованиями и приоритетами. Без постановки задачами сама данная тема - пальцем в небо.

Кому-то надо пережевать огромные массивы данных, которые в ОЗУ не помещаются и он может подождать. А кому-то надо максимальную скорость решения, даже если придётся в магазин идти за сотней-другой гигабайт ОЗУ. И то и другое имеет место быть.

В общем, вопрос вникуда.
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
05.06.2024, 12:04  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Вместо большой библиотеки с неясными границами и целями лучше взять что-то поменьше и направленное на решение одной задачи.
Никто же не говорит, что нужно разрабатывать только эту библиотеку и ничего больше. Но периодически возвращаться к ней, чтобы облегчить жизнь большинству программистов на .NET, включая себя, можно.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Или вот идея. Вы обнаружили что метод List<T>.InsertRange в определенном случае работает очень медленно. Почему бы не сделать Pull Request для .NET с исправлением чтобы принести пользу всему сообществу .NET программистов?
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Но зато представьте насколько круто это будет - знать что ваш код является частью .NET!
Для меня, может, и круто. А все программисты на .NET не оценят - им глубоко плевать, написал конкретный метод Бодхи Махата (имя условно, на точность транскрипции не претендую) или Николай Этюгибосэкю. Они будут просто пользоваться всем .NET, и у 99.999% даже мысли не возникнет о том, а кто же это написал.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
В какой ситуации от него может быть польза?
В ситуации удаления дубликатов в коллекции.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Это всего лишь бенчмарк конструкторов. Где тесты остальных методов?
А зачем хэш-множеству остальные методы? Вызываем ToArray() или ToList() и т. д. и вперед! Ну, есть еще Add() и RemoveByValue(), но по ним напрямую сравнить производительность не получится, так как в один поток будет не быстрее (и даже медленнее, за счет накладных расходов), а во много потоков не работает хэш-множество от Microsoft. А что еще нужно от хэш-множества, я себе не представляю. На индексацию, как я писал выше, лучше забить.
Цитата Сообщение от OwenGlendower Посмотреть сообщение
По моему вы нашли специфический пример который выгодно показать, но полезность которого в реальном сценарии сомнительна.
Полезность удаления дубликатов в коллекции сомнительна?
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18404 / 14336 / 5370
Регистрация: 17.03.2014
Сообщений: 29,020
Записей в блоге: 1
05.06.2024, 12:58
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В ситуации удаления дубликатов в коллекции.
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Полезность удаления дубликатов в коллекции сомнительна?
Нет, но если это единственное назначение данного класса, то логичнее было бы сделать метод расширения для IEnumerable<T> и назвать его FastDistinct().

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А зачем хэш-множеству остальные методы?
Чтобы выполнять операции с ним. Такие как пересечение и объединение например.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Никто же не говорит, что нужно разрабатывать только эту библиотеку и ничего больше. Но периодически возвращаться к ней, чтобы облегчить жизнь большинству программистов на .NET, включая себя, можно.
Цель хорошая, но пока не заметно чтобы кто-то видел пользу от вашей библиотеки.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
05.06.2024, 13:18
Цитата Сообщение от Usaga Посмотреть сообщение
Кому-то надо пережевать огромные массивы данных, которые в ОЗУ не помещаются и он может подождать.
Чуть поправлю -- ему придется ждать.

В целом у любой программы есть аппаратные требования: такой-то процессор, столько-то ОЗУ, столько-то места на диске. Задачи дополнительно расширяют эту вилку. Скажем таже база данных: для кого-то и 1ГБ будет за глаза, а кому-то и 10 не хватит для адекватной работы.

В идеале нужно стремится всё сводить к минимуму. На практике... ну лично у меня больше проблем когда программа выжирает много памяти, так как занимаюсь обычно серверными приложениями. Если мой метод будет отжирать много ОЗУ, и он вызовится одновременно несколькими пользователями -- будет больно. Тем не менее я не фанатично экономлю каждый бит, а порой даже наоборот ввожу какой-нибудь кэш.

Серебряной пули увы нет.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
05.06.2024, 13:41  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Чтобы выполнять операции с ним. Такие как пересечение и объединение например.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
namespace Benchmark;
 
[MemoryDiagnoser]
public class Benchmark
{
    private static readonly Random random = new(1234567890);
    private static readonly List<int> list7 = RedStarLinq.Fill(x => random.Next(0, 65536), 10000000);
    private static readonly List<int> list8 = RedStarLinq.Fill(x => random.Next(0, 65536), 100000000);
 
    public static ParallelHashSet<int> ParallelHashSet { get; set; } = new ParallelHashSet<int>(new Chain(0, 90000000).Shuffle());
    public static ParallelHashSet<int> ParallelHashSet2 { get; set; } = new ParallelHashSet<int>(new Chain(10000000, 90000000).Shuffle());
    public static G.HashSet<int> GHashSet { get; set; } = new(ParallelHashSet);
    public static G.HashSet<int> GHashSet2 { get; set; } = new(ParallelHashSet2);
 
    [Benchmark]
    public void GHashSetTest() => GHashSet.IntersectWith(GHashSet2);
 
    [Benchmark]
    public void ParallelHashSetTest() => ParallelHashSet.IntersectWith(ParallelHashSet2);
 
    [Benchmark]
    public void GHashSetTest2() => GHashSet.UnionWith(GHashSet2);
 
    [Benchmark]
    public void ParallelHashSetTest2() => ParallelHashSet.UnionWith(ParallelHashSet2);
}

Пересечение немного быстрее, объединение - примерно в 8 раз.
P. S. Прошу прощения за "плохие" имена бенчмарков.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18404 / 14336 / 5370
Регистрация: 17.03.2014
Сообщений: 29,020
Записей в блоге: 1
05.06.2024, 14:05
Etyuhibosecyu, думаю этот тест нужно по другому организовать. Ведь методы IntersectWith, UnionWith меняют оригинальную коллекцию. И значит код тестирует ситуацию когда коллекция уже находится в нужном состоянии. Это тоже интересно, но сценарий когда коллекции отличаются тоже нужно проверить. Советую еще разнести тесты IntersectWith, UnionWith и пометить один из них как Baseline чтобы либа показывала Ratio колонки.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Пересечение немного быстрее
Но при этом разница по памяти слишком уж большая.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
05.06.2024, 14:16  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
И значит код тестирует ситуацию когда коллекция уже находится в нужном состоянии. Это тоже интересно, но сценарий когда коллекции отличаются тоже нужно проверить.
Запустил тест, где коллекция точно не изменена до запуска:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ParallelHashSet<int> ParallelHashSet = new ParallelHashSet<int>(new Chain(0, 90000000).Shuffle());
ParallelHashSet<int> ParallelHashSet2 = new ParallelHashSet<int>(new Chain(10000000, 90000000).Shuffle());
G.HashSet<int> GHashSet = new(ParallelHashSet);
G.HashSet<int> GHashSet2 = new(ParallelHashSet2);
var sw = Stopwatch.StartNew();
GHashSet.IntersectWith(GHashSet2);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
sw.Restart();
ParallelHashSet.IntersectWith(ParallelHashSet2);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
ParallelHashSet = new ParallelHashSet<int>(new Chain(0, 90000000).Shuffle());
ParallelHashSet2 = new ParallelHashSet<int>(new Chain(10000000, 90000000).Shuffle());
GHashSet = new(ParallelHashSet);
GHashSet2 = new(ParallelHashSet2);
sw.Restart();
GHashSet.UnionWith(GHashSet2);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
sw.Restart();
ParallelHashSet.UnionWith(ParallelHashSet2);
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Название: 2024-06-05_14-14-59.png
Просмотров: 140

Размер: 1.9 Кб
К сожалению, в пересечении мое хэш-множество в ауте... Вероятно, проблема в том, что объединение добавляет, как и конструктор, а пересечение удаляет, а удаление тормозит. Но как минимум с конструктором мое хэш-множество показывает несравнимое преимущество.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
05.06.2024, 14:22  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Нет, но если это единственное назначение данного класса, то логичнее было бы сделать метод расширения для IEnumerable<T> и назвать его FastDistinct().
Сделал ToParallelHashSet(), позже добавлю в репозиторий. Но пользоваться им нужно будет с осторожностью, так как класс пока что на стадии альфы, возможны баги.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18404 / 14336 / 5370
Регистрация: 17.03.2014
Сообщений: 29,020
Записей в блоге: 1
05.06.2024, 14:26
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Запустил тест, где коллекция точно не изменена до запуска
Мы не можем напрямую сравнивать результаты этого теста с предыдущим. Если уж начали использовать BenchmarkDotNet, то и пользуйтесь им. Нужно просто перенести создание коллекций в бенчмарк-метод. Заодно не помешает уменьшить размер коллекции. Тесты для больших размеров разумеется есть смысл проводить, но для постоянного применения сойдут коллекции меньшего размера.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
ласс пока что на стадии альфы, возможны баги.
Что тут сказать. Продолжайте работу. Тестируйте. Доводите код до ума.
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,043
06.06.2024, 07:16
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
так как класс пока что на стадии альфы, возможны баги.
Уже миллион раз говорили о юнит-тестах. Миллион раз.
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
06.06.2024, 12:15  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Уже миллион раз говорили о юнит-тестах.
А вы не в курсе, что они ЕСТЬ? Но 1 - невозможно "за один прием" покрыть юнит-тестами сразу всю библиотеку, это делается медленно и постепенно, и 2 - никакие юнит-тесты не могут покрыть 100% ошибок, всегда возможно, что есть ситуация, которую тесты не покрывают. В терминологии Corlib.NStar "на стадии альфы" означает, что класс покрыт главным юнит-тестом, который проверяет "общим планом" поиск, добавление, изменение и удаление элементов. А "на стадии беты" - что проверены "крупным планом", со всеми перегрузками и бросанием исключений, большинство функций. Таких у меня сейчас пять классов: List<T>, BitList, NList<T>, ListHashSet<T> и Slice<T>. При этом и на стадии беты, несмотря на все перегрузки, возможно, что какой-то из возможных путей исполнения не проверен, либо некорректно проверен, и там есть ошибки. Пример - BitList. А что значит "на стадии релиза" - одно только определение занимает целый текст. Это практически нереально. Я достаточно понятно объяснил?
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,043
06.06.2024, 12:53
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я достаточно понятно объяснил?
Да, вполне. Я понял, что с тестами всё плохо. Они ведь не только у тебя корректность проверяют, но и время и потребляемую память, так ведь? Правда же?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
06.06.2024, 12:55  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Они ведь не только у тебя корректность проверяют, но и время и потребляемую память, так ведь? Правда же?
Спасибо за шутку. Но я прекрасно знаю, что время и потребляемую память проверяют бенчмарки, а не юнит-тесты.
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
06.06.2024, 14:58
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Для меня, может, и круто. А все программисты на .NET не оценят - им глубоко плевать, написал конкретный метод Бодхи Махата (имя условно, на точность транскрипции не претендую) или Николай Этюгибосэкю. Они будут просто пользоваться всем .NET, и у 99.999% даже мысли не возникнет о том, а кто же это написал.
А, вам же слава нужна. Ну вот у вас есть слава говнодела в пределах конкретного форума. Уже много лет стабильная слава. Надеюсь, вы довольны? Все знают, чего ожидать, видя в авторах темы Etyuhibosecyu.

А если серьёзно, если вы действительно продерётесь через то что вам предложили, доведете хоть один МР в тот же .NET (или в любой другой опенсорс проект) до принятия - получите такой буст опыта и скиллов, какой с вашими игрушечными говнопроектами не получите никогда.

Добавлено через 16 минут
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Пересечение немного быстрее
И выжирает при этом 640 МБ вместо 600 байт? Офигеть соптимизировал.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
06.06.2024, 15:00  [ТС]
Цитата Сообщение от Катафалк Посмотреть сообщение
И выжирает при этом 640 МБ вместо 600 байт? Офигеть соптимизировал.
Написано же:
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
К сожалению, в пересечении мое хэш-множество в ауте... Вероятно, проблема в том, что объединение добавляет, как и конструктор, а пересечение удаляет, а удаление тормозит. Но как минимум с конструктором мое хэш-множество показывает несравнимое преимущество.
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
06.06.2024, 15:02
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Написано же:
Хорошо, что написан. Но юзабельной библиотека, которая непредсказуемо может выжрать всю память на простой операции от этого не становится.
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,043
06.06.2024, 17:29
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Спасибо за шутку.
А в чём шутка? Юнит-тесты не могут производительность тоже проверять? С чего вдруг? Это такие же тесты.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
06.06.2024, 17:39  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
А в чём шутка? Юнит-тесты не могут производительность тоже проверять? С чего вдруг? Это такие же тесты.
Не пойму, вы меня проверяете, что ли? Нет, такая проверка для меня - уже пройденный этап. А если серьезно, то теоретически это возможно, но смысл, если бенчмарки для этого приспособлены, а проверять производительность в юнит-тесте - это убогий костыль.
0
Эксперт .NET
 Аватар для Usaga
14784 / 9558 / 1366
Регистрация: 21.01.2016
Сообщений: 36,043
06.06.2024, 17:41
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
а проверять производительность в юнит-тесте - это убогий костыль.
Серьёзно? Ты понимаешь смысл юнит-теста? Своевременное определение регресса. Деградация производительности к регрессам относится. Если ты этот вопрос проверкой считаешь, то ты её не прошёл.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
06.06.2024, 17:45  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Если ты этот вопрос проверкой считаешь, то ты её не прошёл.
Поздравляю, вы смогли меня подколоть! Признаю свой промах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.06.2024, 17:45

Есть ли смысл увеличить оперативную память?
доброго времени суток.Не подскажете есть ли смысл еще в одной планке, если ось xp sp3 Тип ЦП DualCore AMD Athlon 64 X2, 2200 MHz (11 x...

Есть ли смысл добавить оперативную память?
Доброго времени суток! Ноутбук HP Omen 15 ax 005 ur I5-6300hq 2300mhz 8 GB RAM - 2х4 ГБ GTX 960M 4GB SSD В играх показывает...

Есть ли смысл добавлять оперативную память?
Здравствуйте,недавно задался вопросом,стоит ли добавлять 1 планку оперативной памяти на ноутбук Asus K53SD,характеристики: Intel Core...

Есть ли смысл добавлять оперативную память
Добрый день, хочу задать вопрос о том стоит ли добавлять оперативную память на компьютер следующей конфигурации: Процессор Pentium G840...

Есть ли смысл создавать потоки количество которых больше чем количество ядер процессора?
Сабж. Есть ли смысл? Ведь одновременно одно ядро процессора не может выполнять более одной задачи (а поток это задача)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru