|
Труд вопреки насмешкам
|
|
Corlib .NStar (Pre-Pre-Alpha) 0.05. Теперь отдельно от нелюбимого многими языка!15.11.2022, 02:13. Показов 11976. Ответов 194
Метки нет (Все метки)
Помню, кто-то писал о функциях C# .NStar примерно следующее (неточная цитата): "все это или уже есть в языке, просто вы не в курсе, или лечится подключением библиотеки или банальным написанием функции". Тогда я отреагировал на это высказывание отрицательно, но теперь подумал и решил, что новичкам, может быть, и пригодится язык с богатым фреймворком и низким порогом вхождения, но новички - очень ограниченный круг охвата, а большинству людей трудно переучиваться, поэтому неплохо было бы подключить библиотеку и не изучать новый язык. Так появился проект Corlib .NStar - новая библиотека, объединяющая BigCollections и стандартную библиотеку C# .NStar. Ее можно подключить практически к любому не эзотерическому/игрушечному языку и не слишком упрощенному конструктору, вот только желательно было бы протестировать на предмет доступности функций в неуправляемых языках - есть подозрение, что они "прячутся", хотя я навесил на них DllExport. Изменений много, подробнее читайте на нашей новой странице GitHub. Некоторые изменения из стандартной библиотеки C# .NStar в разработке, например, замена. А некоторые вряд ли когда-то будут доступны вне C# .NStar по объективным причинам, как, например, escape-последовательности \! и \q. Так что библиотека явно менее функциональна, чем полноценный язык. Но не намного. Тестируйте, дорогу осиливает идущий!
0
|
|
| 15.11.2022, 02:13 | |
|
Ответы с готовыми решениями:
194
Вставка тега <pre></pre> в файлы директории Pre-alpha Season Unreal Tournament |
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|||||||||||
| 17.11.2022, 15:53 | |||||||||||
|
Etyuhibosecyu, я сейчас дома ваш проект смог собрать (пришлось ставить С++). И внимательно посмотрел "бенчмарк", который вы выше привели...
Там сравнивается тёплое с мягким. Как обычно у вас это бывает.
Если не поняли, то это фуфло, а не замер. И даже близко не LINQ. Добавлено через 1 минуту И кто вас такую дичь учил писать?
0
|
|||||||||||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|||||||||||
| 17.11.2022, 15:57 | |||||||||||
|
Etyuhibosecyu, стоит отбросить ваши костыли и всё становится на свои мест:
Кликните здесь для просмотра всего текста
0
|
|||||||||||
|
Администратор
|
||||||
| 17.11.2022, 15:57 | ||||||
|
Etyuhibosecyu, 1) слабое оправдание
2) Замена на Corlib.NStar.List не сильно помогает. Код работает быстрее, но память продолжает жрать. Теперь правда хотя бы 80 Мб, а не 3 Гб как раньше.
0
|
||||||
|
Труд вопреки насмешкам
|
||
| 17.11.2022, 15:57 [ТС] | ||
|
0
|
||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
||
| 17.11.2022, 16:01 | ||
IEnumerable, а только с вашими собственными коллекциями. Это не оптимизация LINQ. Это ваши собственные методы работы с вашими собственными коллекциями. Причём заметьте, LINQ с вашим вариантом листа работает в три раза хуже, чем с оригинальным. Получается, что это не ваши "оптимизированные методы LINQ" быстрее оригинального LINQ'а, это ваши коллекции настолько кривые, что с ними в три раза хуже работается. А если взять исходную коллекцию, то работа с ней чистого LINQ'а быстрее ваших наработок.
0
|
||
|
Труд вопреки насмешкам
|
|||
| 17.11.2022, 16:06 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
||||||
| 17.11.2022, 16:06 | ||||||
|
Etyuhibosecyu, более того, если использовать чистый итератор
IEnumerable, без всяких массивов подкопотных, то ваши оптимизации жидко сливают оригинальному LINQ:
0
|
||||||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|||||||
| 17.11.2022, 16:08 | |||||||
IEnumerable. Вы под капотом активно кастите к своим листам и используете их особенности:
0
|
|||||||
|
Труд вопреки насмешкам
|
||
| 17.11.2022, 16:09 [ТС] | ||
|
0
|
||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
||
| 17.11.2022, 16:11 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
||
| 17.11.2022, 16:11 [ТС] | ||
|
0
|
||
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
||
| 17.11.2022, 16:16 | ||
|
Я выше, вон, отбросил вашу коллекцию и проверил на нормальном массиве и на чистом итераторе. Оригинальный LINQ тупо быстрее вашего оптимизированного. Вот и всё.
Добавлено через 1 минуту IEnumerable. Ваши методы, не смотря на то, что расширяют IEnumerable, заточены на ваши листы. И эти методы работают ХУЖЕ, чем чистый LINQ. Пруфы выше.Добавлено через 2 минуты Идиотизм ситуации в том, что ваши замеры показали не превосходство ваших методов над LINQ, а то, что LINQ с вашими коллекциями работает в три раза хуже. Ваши же навороты, работают от почти также (чуть медленее), до в два раза медленее. Т.е. вы не оптимизировали ничего, вы сделали хреновые коллекции с которыми LINQ работает хуже, чем с родными))))
0
|
||
|
Труд вопреки насмешкам
|
||||||
| 17.11.2022, 16:22 [ТС] | ||||||
|
С нормальным массивом я уже исправил:
С чистым итератором проблема именно в AsSpan(). Попробуйте другой метод и посмотрите на результат.
0
|
||||||
|
Труд вопреки насмешкам
|
|
| 17.11.2022, 16:25 [ТС] | |
|
Usaga, к слову, я и количество созданий нового списка сократил больше, чем в три раза:
В некоторых редких методах возможны ошибки, но они и раньше не были исключены.
0
|
|
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|
| 17.11.2022, 16:37 | |
|
Etyuhibosecyu, хорошо, конечно, но все ваши оптимизации свелись к героической борьбе с вашим же кривым кодом. И конечный результат - почти тоже самое, что было до вас, а местами и того хуже.
Добавлено через 1 минуту Перефразирую: вы оптимизировали тормоза, которые сами же и привнесли. Крутая оптимизация, блин)
0
|
|
|
Труд вопреки насмешкам
|
|
| 17.11.2022, 16:45 [ТС] | |
|
0
|
|
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|
| 17.11.2022, 16:46 | |
|
Etyuhibosecyu, я простой пример выше привел. Простой и распространенный: работа с массивом и итератором. И ваша поделка слила. Что еще нужно?
0
|
|
|
Труд вопреки насмешкам
|
|
| 17.11.2022, 16:47 [ТС] | |
|
Usaga, еще нужно то, что на ParallelHashSet<T> вы так и не посмотрели.
0
|
|
|
14724 / 9494 / 1362
Регистрация: 21.01.2016
Сообщений: 35,790
|
|
| 17.11.2022, 16:58 | |
|
Etyuhibosecyu, а стоит? Я там не увижу тоже самое, что я каждый раз вижу?)
0
|
|
|
Труд вопреки насмешкам
|
|
| 17.11.2022, 16:59 [ТС] | |
|
Usaga, а попробуйте! Просто для интереса.
0
|
|
| 17.11.2022, 16:59 | |
|
Hash Function Efficiency v0.1 pre-Alpha (May 11th, 2017)
Тэг PRE
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|