Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 111 След.
Алгоритмы
 
Цитата
JeyCi написал: параллельность - это отдельная история
Используем параллельные алгоритмы C++17 для улучшения производительности
Цитата
Прежде всего, параллелизм — это оптимизация.
Если в ходе тестов параллельный алгоритм не даёт преимуществ для разумных значений N, то мы его не распараллеливаем.
- поэтому разработчики библиотек нам нужнее, чем если мы сами начинаем параллелить, разрабатывая велосипед...
с появлением C++v.17 (17-го стандарта) - спасибо тем, кто его разрабатывает :) - они же и тестят свои разработки перед вводом в Стандарт
Цитата
C++17 updated std::search algorithm in two ways:
•you can now use execution policy to run the default version of the algorithm but in a parallel way.
•you can provide a Searcher object that handles the search.
p.s.
в общем и целом линк я уже в принципе где-то оставляла - 10 лучших алгоритмов и структур данных для конкурентного программирования... [но это для threads - потоков, полагаю]
для них можно и свой велосипед изобретать [когда в библах ещё ничего нет или нужен какой свой Wrapper, aka Adapter - паттерн проектированя] ...
Распараллеливание задач через функцию «Подождать до завершения подзадач» - в принципе во многих языках async await-реализация уже присутствует... [это для async - полагаю]
p.p.s.
не забывая, что распаралеливание бывает на уровне ядра (для CPU-bound задач) и на уровне данных (для IO-bound задач)... имхо... не путать потоки и асинхронность между собой
Изменено: JeyCi - 25 Мар 2020 08:52:57
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
строки в DLL (Unicode <-> ANSI) - линк здесь
Изменено: JeyCi - 25 Мар 2020 07:08:50
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
справедливости ради, всё-таки отмечу...
насколько помню, многие библиотеки С++ изначально появлялись из VB-библиотек вроде... и в VB-библиотеках можно найти что-то интересное... проблема не в VBA, а именно в способах взаимодействия VBA с объектной моделью Excel - НЕ быстро... по сравнению с С/C++, который взаимодействует с объектной моделью Excel на порядок быстрее... - т.е. работа с самими ячейками и т,д, Excel'я...
хотя, конечно, на нынешнем этапе возможности стандарта C/C++ достаточно разрослись и не все они, полагаю, внедрены в vb/vba... имхо
Изменено: JeyCi - 25 Мар 2020 06:24:22
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
С++: (из работы bedvit по сортировке)
Цитата
concurrency::parallel_buffered_sort    //указателей !!
нашлась статья в тему - Vector of Objects vs Vector of Pointers And Memory Access Patterns - т.е. если использовать параллельную сортировку, да ещё и указателей, а не самих данных... [даже какие-то графики производительности по использованию указателей]
N.B. параллельность - это отдельная история - но приятно, что на C++ её уже и писать не надо, она часто реализована в самом стандарте C++ (его библиотеках)... раньше многие из них можно было найти в boost-библиотеках (доп. к стандарту)
===
параллельность + указатели = скорость алгоритма... сами алгоритмы - многие - уже реализованы в std::algorithms - даже изобретать велосипед не надо
Изменено: JeyCi - 25 Мар 2020 06:26:12
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал:
... А если правильно выбрана Архитектура??... и правильно выбраны инструменты для реализации...
продолжение на С++... (сугубо по собственным задачам проекта - Архитектура в первом приближении)...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
нельзя не вспоминать разработки на С/С++ от bedvit:
ArraySortV (Variant) , (1-й код) ,  
ArraySortS (String) ,
Transpose ,
Vlookup ,
FilterUnicodeChar ,
Replace,
InStr ,
Bignum arithmetic ,
Многопоточность в VBA .....
это всё на основе Программирование с использованием API C в Excel
Изменено: JeyCi - 8 Мар 2020 08:22:14
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
... и суровая правда жизни программистов  :evil:
(которую непрерывно отказываются понимать заказчики  8-0 ):
Цитата
совершенно очевидно, что для любого ТЗ можно легко придумать такую правку, из-за которой придется радикально переписывать программу.
P.S.
... А если правильна выбрана Архитектура??... и правильно выбраны инструменты для реализации... -- время покажет
Изменено: JeyCi - 8 Мар 2020 10:40:08
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал: -- значит над #158, вероятно, надо ещё поколдовать - чтобы скачивать и скидывать данные каждые в свой файл... хоть в таком ТЗ вроде и нет задач для ЦП, но куда-то они (данные) утекают не доходя до файла??...
SORRY  :oops:
был у меня такой код (доработанный из примера #158) - долго не использовала - вспомнила, откуда там появлялись пустые файлы - там проверка получаемой строки с url'a на ответ "Access Denied" (т.к. запросы в сеть на сторонний сайт, и не через ASP MVC, а просто кодом Python) ==> это была не проблема асинхронности, а вопрос защиты стороннего сайта.....
и не Race Condion это был  8)
p.s.
ну хоть в вопросы асинхронности заглянули ещё раз  :)
значит, асинхронность - это хорошо, но только когда обращаешься к своему серверу/сайту
Изменено: JeyCi - 20 Фев 2020 15:32:10
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал:  :(  вот так путаница и возникает - как следствие: пока не проверишь, не знаешь, с чем имеешь дело...
но в принципе Microsoft расставляет всё по своим местам в своей документации по C# - Асинхронное программирование
Цитата
Перед написанием любого кода нужно ответить на два вопроса.
1.Будет ли код "ожидать" чего-либо, например данных из базы данных?
Если ответ утвердительный, то ваша задача ограничена производительностью ввода-вывода. (IO-bound)
2.Будет ли код выполнять очень сложные вычисления?
Если ответ утвердительный, то задача ограничена ресурсами процессора. (CPU-bound)
!!!
Если ваша задача ограничена производительностью ввода-вывода (IO-bound), используйте async и await без Task.Run. Библиотеку параллельных задач использовать не следует. Причина этого указана в статье Подробный обзор асинхронного программирования.
Подробный обзор асинхронного программирования
Цитата
Код async, связанный с использованием ЦП, немного отличается от кода async, связанного с операциями ввода-вывода. Поскольку работа выполняется на ЦП, невозможно избежать выделения потока для вычислений. Использование async и await предоставляет чистый способ взаимодействия с фоновым потоком и позволяет объекту, вызвавшему асинхронный метод, по-прежнему реагировать на новые запросы. Обратите внимание, что это не обеспечивает защиту общих данных. Если вы используете общие данные, все равно потребуется применять соответствующую стратегию синхронизации.
Цитата
CalculateResult() выполняется в потоке, в котором он вызывался. Когда он вызывает Task.Run, он помещает дорогостоящую операцию, связанную с ЦП, DoExpensiveCalculation(), в очередь пула потоков и получает дескриптор Task<int>. DoExpensiveCalculation() в конечном счете выполняется параллельно в следующем доступном потоке
-- значит над #158, вероятно, надо ещё поколдовать - чтобы скачивать и скидывать данные каждые в свой файл... хоть в таком ТЗ вроде и нет задач для ЦП, но куда-то они (данные) утекают не доходя до файла??... какую-то защиту, вероятно, надо бы создать... ИЛИ (как в цитате)
Цитата
Если вы используете общие данные, все равно потребуется применять соответствующую стратегию синхронизации.
Изменено: JeyCi - 20 Фев 2020 15:28:40
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
доп к #193 -
Итак, чтобы добраться до истины -
то, что кто-то где-то называл асинхронностью может оказаться многопоточностью по сути
, надо вспомнить пост от bedvit
Цитата
Race Condition относится к Многопоточности
и мой пост
Цитата
в более ранних статьях и разработках на Python - какие-то проблемы с лексикой - когда смешивают в кучу асинхронность и многопоточность
Терминология - Многопоточное vs асинхронное программирование
вводя условное слово Task  в примерах по асинхронности на Python - разработчики Python в скором времени получают иную интерпретацию и смысл слова Task от Microsoft в их TASK PARALLEL LIBRARY (TPL) - NET 4.0
Цитата
нет возможности использовать оптимальное количество потоков в зависимости от имеющегося оборудования, если явно об этом не позаботиться.
Иными словами, вместо решения прикладной задачи разработчик вынужден кучу сил тратить на борьбу с недружественным окружением.
Решение этих проблем в TPL начинается с того, что вместо привычных потоков вводится другая базовая абстракция – Task (задача).
--- но тем не менее это параллелизм...  :excl: (по крайней мере в контексте TPL от Microsoft - создаётся ощущение из той статьи - ссылка ниже)... хотя Асинхронное программирование в C# 5  :( вот так путаница и возникает - как следствие: пока не проверишь, не знаешь, с чем имеешь дело...
***
по Параллелизму - описание цитаты и др. нюансов в статье на RSDN.org - Эпоха параллельности ... там же про LINQ и про PLINQ
Цитата
Существует довольно большой класс задач работы с данными, который отлично распараллеливается и естественным образом разбивается на оптимально гранулированные подзадачи, о которых говорилось ранее – это различного рода объединения, фильтрация, группировка и прочие операции с наборами данных. В .Net 3.5 для такого рода задач была представлена библиотека декларативных запросов – LINQ, и это отличный кандидат на автоматическое распараллеливание. Собственно, о привлекательности декларативности в этом аспекте уже говорилось ранее. Когда код декларативен, очень многие решения можно отдать на откуп компилятору/оптимизатору/библиотеке, которые лучше знают о конкретном окружении, числе ядер и прочих особенностях... PLINQ ровно это и демонстрирует
[хотя для считывания JSON и LINQ to Json (цель - запросы) не нужен в c#, достаточно просто библы Newtonsoft, aka JSON.NET]... но для Join'ов разных json'ов (если надо) - только LINQ
P.S.
в той статье на RSDN и проблема Out of Memory объяснена
Цитата
если бы каждая итерация была потяжелее (или алгоритм вообще реализовывался через рекурсию), то все эти потоки висели бы в памяти, что в перспективе привело бы к OutOfMemory
о чём впрочем bedvit и писал
Цитата
потоки будут стоять в очереди на ядро
---
вобщем всё дело терминологии языка - это дело абстракций и их сути, которые насоздавали в разные времена в разных языках без оглядки на конкурентов (очередное доказательство тго, что сотрудничество всегда лучше конкуренции)... отсюда и возникает путаница и затраты времени на поиск объяснений "что это значит" при попытке выбрать более соотв. язык, чем VBA для тех или иных задач - (например для ускорения с помощью добавления асинхронности)
хотя возможно и библиотеки NET с их асинхр. возможностями можно как-то подключить в VBA... но пока тупо через Tools/Reference не вижу возможностей... только создание надстроек на C#... хотя тоже вопрос спорный ввиду IL природы c#'а - т.к. Comparing LINQ with Stored Procedure - Stored procedures Сервера по скорости более выгодны, чем LINQ  :excl:  (тестировать не хочу, поверю статье по линку)
Изменено: JeyCi - 20 Фев 2020 10:20:00
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал: Касательно Архитектуры
всё не так сложно - хорошие ответы на форуме кибера - даже без книжек  :)
Как придумать классы по описанию проекта
ООП, понимание абстрактных классов/методов и т.п
Какую архитектуру программы лучше выбрать?
... и иные из той же ветки и там же...
Изменено: JeyCi - 16 Фев 2020 11:31:30
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал: дополнение к объяснению по python о целесообразности использования async/await именно совместно с асинхр. методами, а не какими другими...
добавила ремарку к коду #158, который набросала ещё тогда
Цитата
пример aiofiles -- PROBLEM: Race Condition !!
- т.е. асинхр библа python'a всё равно не защитила от Race Condition !
то ли дело в библе, то ли в коде -- просто оставляю пост для инфо... - не все json-структуры сохраняются в файлы...
библиотеки С# ещё не пробовала
Изменено: JeyCi - 20 Фев 2020 10:05:17
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Создание алгоритма распределения плана продаж на территории
 
Цитата
Python777 написал: Создание алгоритма распределения плана продаж на территории
распределения - тоже статистический термин!... видится мне, вы не совсем представляете его суть... алгоритма у него нет... но есть алгоритм поиска его (вида распределения)... и его создавать не надо - надо открывать учебники по стат. обработке и прогнозированию... или может быть в эконометрике
p.s.
но вид распределения определяется из совокупности наблюдений... у вас же одно наблюдение за один месяц (если бы было за несколько месяцев, то тоже по одному - на одной территории)... вобщем достоверность прогноза в любом случае будет с потолка (+ не учитываете уровень дохода покупателей, активность конкурентов и иные внешние факторы) -- поэтому и тема не особо интересна -- т.к. делать по уму - можно и диплом писать... а наляпать формул - можно и в сети найти... имхо
Изменено: JeyCi - 16 Фев 2020 07:48:18
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Создание алгоритма распределения плана продаж на территории
 
Цитата
Python777 написал: Есть ощущение
вы бы тему сначала просканировали в сети
пример - Прогноз продаж в Excel
... т.е. любой план/прогноз строится на основе имеющихся данных, подвергая их статистической обработке (для выявления вида закономерности - прямолинейной, экспоненциальной, логарифмической и т.д. - в зависимости от влияющих на процесс параметров) и выводом результата с использованием инструментов теории вероятностей (включая уравнение, описывающее процесс и погрешности, если они нужны)...
- это если делать по уму ( а не по ощущениям)...
+ я бы не советовала тупо использовать функции excel (как советует microsoft) - типа
- ПРЕДСКАЗ
- НАКЛОН
- ЛИНЕЙН и ЛГРФПРИБЛ
-- Прогнозирование значений в рядах
Цитата
Если вам нужно выполнить более сложный регрессионный анализ, в том числе для вычисления и построения остатков, можно использовать средство регрессионный анализ в надстройке "пакет анализа".
Вариант быстро и просто одной функцией - не очень достоверен может оказаться - Т.к. по сути сначала надо определить тип зависимости на исторических данных (чтобы правильно выбрать функцию или вывести своё уравнение, описывающее зависимость, - опять же из исторических данных) -
НО у вас НЕТ исторических данных - только данные за Декабрь (1 месяц)
- а даже если бы и были - то, думаю, за вас никто прогнозировать не будет - есть достаточно примеров в сети... разве что в платном разделе может кого заинтересует тема... хотя тема не совсем excel'ная, скорее именно математического моделирования (т.к. + вы хотите учесть вклад разл. факторов в прогноз - значит их влияние тоже надо сначала смоделировать математически - по имеющимся данным, которых у вас НЕТ - ни зависимостей от роста территории, ни от потенциала территории и т. д.)... можете поискать счастья на соответствующих форумах... (полноценная стат. исследование и прогноз - дело не  оной-двух формул - учебники пишут по таким вещам)... успехов
Изменено: JeyCi - 16 Фев 2020 07:32:53
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Ошибка: Expected End of statement в функции
 
Цитата
Abattur написал: Return
не видела такого слова в vba ! - это коммент, а не строка кода
Код
'Return cellAddress

пользуйтесь справкой по кнопке F1
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Сложение отклонения power pivot
 
Цитата
Роман Абрамов написал: Подскажите, пожалуйста
пожалуйста -
создайте меру.
а вообще, я бы посоветовала посмотреть Правила форума и приложить файл - как есть и как надо!
Изменено: JeyCi - 13 Фев 2020 16:38:26
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
а парсить json, имея predetermined structure его - можно и Классом по полям с использованием regex... имхо... даже не напрягаясь поисками удобной библиотеки... хотя Newtonsoft.Json совместно с Newtonsoft.Json.Linq в C# дают удобное раделение JToken по JObject и JArray и обращение к ним... да и JsonReader.Async.cs в исходниках - прибавляет оптимизма...
===
(если взаимодействовать с сервером через web или сервером Azure, вероятно, - передавая json'ы туда-сюда... утилита для разбора... но в VS её подобие тоже есть)
Изменено: JeyCi - 18 Дек 2019 16:18:48
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал: C# также реализовал async/await - примерно, как python...
добавлю лишь, коммент по линку
Цитата
If you look in the Remarks section for the ".NET Framework (current version)" of HttpClient you will see it states CancelPendingRequests, DeleteAsync, GetAsync, GetByteArrayAsync, GetStreamAsync, GetStringAsync, PostAsync, PutAsync, and SendAsync are all thread safe.
что непосредственно наталкивает на мысль о том, что не используя эти методы (а другие взамен них) - обязывает вместо имеющегося у первых соотв. wrapper'а создавать своё его подобие или иным способом позаботиться о thread safety множественных запросов... иначе так и будем стоять в очереди на сокет... подумалось мне  8)...
или чего хуже - испытаем на себе Race Condition или memory leaks...
p.s.
хотя в любом случае ограничения на доступ от одного IP придётся учитывать, но 2-3 Task'a можно зарядить на сайт (в зависимости от сайта)...
p.p.s.
это, полагаю, дополнение к объяснению по python о целесообразности использования async/await именно совместно с асинхр. методами, а не какими другими... только свои механизмы, возможно, в др языке... но суть как обычно - всё идёт от библиотек...   :excl:
Изменено: JeyCi - 11 Дек 2019 12:34:54
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
C# How to Async download multiple files using webclient simultaneously?
C# также реализовал async/await - примерно, как python...
Цитата
When you are using keywords async/await then you are running that specific code on another thread. That means that your code will not block Main thread.
... и уже из кода можно грузить в БД, распарсенные json'ы...
на С# и надстройку можно сделать для VBA, насколько понимаю...
Изменено: JeyCi - 6 Дек 2019 19:09:19
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
JeyCi написал: с асинхронностью запросов к SQL Server - в NET всё может обстоять очень даже
как обычно...
Цитата
if your backend is a single SQL server database, and every request hits that database, then there usually isn't a benefit from making your web service asynchronous.
только для web-версий
Цитата
, if your backend is a SQL server cluster or Azure SQL, then you can get a scalability benefit by using an asynchronous web service implementation.
p.s.
для иных целей, нежели запросы к бд - в JavaScript async/await такой же, как для python, только со своим синтаксисом
Изменено: JeyCi - 4 Дек 2019 19:24:31
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
на Python - но описания хорошие
Алгоритмы – часть 1. Жадные алгоритмы, алгоритм Дейкстры.
Алгоритмы – часть 2. Разделяй и властвуй.
p.s.
Быстрая сортировка в Python
Цитата
распараллеливание будет не так эффективно, как в случае сортировки слиянием.
p.p.s
- это та, которая QuickSort (NB не всегда эффектвна)
Изменено: JeyCi - 29 Ноя 2019 12:56:41
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
касательно .NET:
на www.connectionstrings.com - бросается в глаза:
Цитата
Asynchronous processing - A connection to SQL Server that allows for the issuing of async requests through ADO.NET objects.
Код
Server=myServerAddress;Database=myDataBase;Integrated Security=True;
Asynchronous Processing=True;
так что с асинхронностью запросов к SQL Server - в NET всё может обстоять очень даже на уровне (и не надо писать библы самим)... ещё не тестировала... но если ускорит выгрузку ~10 запросов - то вещь неплохая - хотя согласно спойлеру из #184 - не думаю, что при выгрузке с сервера может иметься проблема io_very_slow - если выборки до 1000 records... и скорее всего на 10 query'ях большого прироста не получить...
а, если с Access, то - т.к. выгрузки по сути небольшие, то на медлительном Access (даже если пробовать набросать С# надстройку) - даже если и сработает асинхронная выгрузка query'ей, то по скорости не удастся превзойти возможностей медленного Access... имхо
p.s. здесь
Цитата
Beginning in the .NET Framework 4.5, these legacy methods no longer require Asynchronous Processing=true in the connection string.
Изменено: JeyCi - 4 Дек 2019 19:22:16
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Касательно Архитектуры всё-таки оставлю линк:
Создание архитектуры программыкомпозиция vs наследования, или "Разделяй и властвуй"), - как всегда, в комментах (этого линка) повод задуматься...
и ещё раз задуматься при рассмотрении концепций разработки игр -
Цитата
В будущем, если игра окажется успешной, мы будем развивать ее дальше.
- становится понятна риторичность всех вопросов касательно архитектуры и ООП... поскольку не всегда "будем", и не всегда "мы"... отсюда возникает мудрость последнего коммента первого линка:
Цитата
Архитектура всегда есть, вы всегда можете выделить из системы компоненты, описать их взаимодействие и т.д. То что она формироваться должна не по принципу «надо все продумать» а по принципу «не знаешь какое решение тут лучше, сделай проще и так, что бы было удобно переделать», это уже другое.
... посему паттерны проектирования - на любителя...
... а если придётся рефакторить - то там же, и там же...
===
лучше увидеть Финиш ДО начала кодирования  ;)
Изменено: JeyCi - 4 Дек 2019 19:30:18
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Алгоритмы
 
много JSON'ов - запросто превращаются в 1 json... всё просто (даже без алгоритма)
Изменено: JeyCi - 22 Ноя 2019 09:44:34
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
... а всё зависит от того, КАКИЕ УРОВНИ АБСТРАКЦИИ разработчик может создавать сам, а какими уровнями абстракции, уже реализованными в библиотеках языка, - он зажат в определённые рамки самой библиотеки (более высоко-уровневого языка), которые не всегда удобны для его конкретного проекта... и пользуясь этими имеющимися библиотеками "as is" - он не имеет возможности обустроить какие-либо классы/объекты/сущности более удобным для себя способом (для себя - т.е. для своей Архитектуры конкретно под задачу), т.к. этим "шлюзом", в виде библиотеки, ему закрыт доступ к более низкоуровневым способам реализации именно его потребностей при работе с данным классом... ВЫВОД: либо самому писать на низкоуровневом языке с самого начала выстраивая свою архитектуру, либо всякими правдами-не-правдами (переопределение класса, делегаты, наследование, абстрактные классы, public/private определения, да и просто банальные if'ы и select_case'ы) пытаться выкрутиться в рамках уже имеющихся в библиотеке уровнях абстракции, задающих строго лимитированный объём методов и свойств в строго определённых зависимостях др. от др... строго определённых - определённых библиотекой... получается наворот лабиринтовых строк в коде - вместо прямолинейной логики машинного понимания...
... значимость реализации тех или иных уровней абстракции на том или ином уровне языка навеяна этой статьёй - в части
Цитата
чтобы мы смогли получить четкое разделение логики получения бинарных данных из канала ввода/вывода и логики интерпретации этих самых данных. Такая абстракция очень важна, поскольку в большинстве библиотек ввода/вывода в Python присутствует достаточно сильная связность между реализацией канала ввода/вывода и обработкой данных, которые пришли из этого канала. Это основная проблема пакета http стандартной библиотеки Python, поскольку в нем отсутствует отдельный HTTP-анализатор, а объект соединения выполняет всю работу по вводу/выводу и обработке. И если вы надеялись, что requests получит поддержку асинхронного программирования, вашим надеждам не суждено сбыться, поскольку синхронный ввод/вывод является неотделимой частью общей архитектуры
:) так что простым asincio и его async/await даже просто много файлов будет НЕ считать асинхронно, поскольку, вполне вероятно, что такая же история, как и с запросами, - неразрывная связь "между реализацией канала ввода/вывода и обработкой данных, которые пришли из этого канала" - и всё это проделки стандартной библиотеки, которую, чтобы обойти, - придётся опускаться на более низкий уровень вхождения... а по-другому никак... имхо (поэтому все асинхр библиотеки Python - aiohttp, aiofiles, aiostream, aio - создавались сами по себе, и поэтому простое заворачивание в async обычных функций - не спасает ситуацию без самих асинхр. библиотек для тех или иных целей -- написанных, полагаю тоже далеко не на Python, а всё может быть - что на более низкоуровневом языке)...
... так что вариант - "быстро читать файлы" на Python (в смысле асинхронно) тоже становился возможным только после 2015г (после появления async и всех её модификаций)...
пример aiofiles

а ранее - ускорение чтения файлов на Python'e -- тоже можно было достичь банально скрещиванием питона с С  :idea:
P.S.
и тем не менее, как всегда:
(особенно справедливо для парсинга, который иногда приходится переписывать под новый вид подачи данных)
Цитата
избежать дублирования кода поможет хорошо продуманная АРХИТЕКТУРА!
- с учётом выбранных библиотек
===
в двух словах:
!! языком язык не ускорить... только новыми уровнями абстракции с более низко-уровневого языка (т.е. др. языка)... заданными в новой библиотеке/пакете/надстройке
Изменено: JeyCi - 20 Фев 2020 10:06:24
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Таким образом, мои впечатления от Python - c учётом того, что
Цитата
Python очень удобный, но очень медленный
- полагаю, по этой причине и был введён модуль asyncio - чтобы ускорить работу сервера при поступлении на него многих запросов от юзеров... сам по себе, полагаю, Python для PHP сродни VBScript (в IE новых версий не поддерживается) и JavaScript для html (не путать с JScript - последний проще и к нему есть доступ из ref. ScriptControl v.1.0 - в VBA)...
НО появился asyncio с его event loop'ом только в v.3.5 (~2015г)... ДО НЕГО был модуль concurrent.futures...
так что возможности Parallelism, Concurrency, Threading (ru, en) - хоть и существовали и ранее, но требовали (как всегда) доп. накладных расходов для Synchronization & Inter-Process-Communication (часто во избежание Race Condition)... и эта линейка была дополнена asyncio модулем (и его async/await syntax) - достаточно удобным...
что самое интересное - имеются рекомендации и иного способа ускорить Python - а именно, скрестить его с C/C++... (ссылки есть в линке на toster.ru предыдущего поста)
но, как мы уже убедились из работы от bedvit - VBA тоже запросто скрещивается с C/C++... причём в C/C++ asyncio API появляется с C++v.11 (2011г) - хотя и сам по себе код, работающий с памятью, - может работать быстрее, чем интерпретируемый код... - поэтому надобность реализовывать асинхр. функции в C/C++ под вопросом (IO в принципе достаточно быстр - проблемы со скоростью м. иметься только при необходимость обработки 1000 файлов или запросов, или около того... - ввиду блокирующей природы IO...
Касательно выбора способов ускориться:
- наличие нужных библиотек (пакетов) в IDE для кодирования тех или иных задач - это единственный важный фактор в выборе языка и IDE для кодирования на нём (с прилагающимися в ней библами)... либо писать свои пакеты (библы) в любой IDE на любом языке, поддерживаемом ей...
конечно же, при выборе инструментов, например, для создания асинхр. кода на Python, также не стоит забывать и о high-level APIs & low-level APIs возможностях (а следовательно и структуре кода)... первые - для написания программ, вторые - для написания библиотек или сред на основе asyncio... не забывая, что
Цитата
Если вы не пишете фреймворк или библиотеку, вам никогда не нужно трогать API низкого уровня
===
удобство работы с JSON, как в Python, так и в С/С++ (можно было библы найти всегда) - существовали уже давно... в PowerQuery появились с его появлением (~2010г)
===
а вот для асинхронности выполнения запросов к БД - в Python (после появления asincio) - были разработаны и aiopg (для PostgreSQL) и aiomysql (для MySQL) и aioodbc, хотя неасинхронные прототипы этих модулей существовали  и ранее... и здесь отмечены подробности возможностей (иногда невозможностей) для реализации асинхр. выполнения запросов (в частности, природа aioodbc ;) - который was based on pyodbc)
Цитата
Note that most database libraries are often implemented in C and the communication with the database happens at the C level, outside the reach of Python and often using threads underneath, so an asyncio driver would not be able to pass back control to an event loop.
имеется и simple asynchronous projects with the Sanic framework - заявляют, что поддерживают и SQLite (хотя SQLite - уже в архиве для Microsoft, и на смену ему пришли и MS SQL Server Local DB & Express версия, допускающая до 10-ти подключений)... кстати можно, возможно, попробовать распараллелить запросы к Express из-за proxy, раз он может принять несколько юзеров, - но это только в сетевой версии, полагаю (не на дом пк)...
Цитата
By providing a proxy server to SQL Server, it is able to support asynchronous calls
...
вобщем, в принципе - возможности для взаимодействия с БД - в Python были всегда, начиная с adodbapi Python 2.4, 2.5... к MS SQL Server 2005 и MS Access - только ADO...
но ADO, как мы знаем, прекрасно работает и из VBA...
===
поэтому, говоря о Python - сложно говорить об ускорении (только если с 2015-го года немного ускорить самого питона, но не свой проект на vba)...
а вот возможности C/C++, работая с памятью, - действительно, многогранны и смогли ускориться ещё до питона :) [за счёт того, что у С-языка низкий уровень вхождения] (хоть и не самый низкий, как у ассемблера)... С++ даёт удобные wrappers, да и сами references for containers, а где надо опуститься на уровень ниже для скорости - задействовать С API способы реализации быстрых алгоритмов
Изменено: JeyCi - 23 Ноя 2019 14:59:00
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Базы данных в Python
- всё-таки имеются модули в Python для работы с БД через ADO - так и называются adodbapi, pyodbc,
p.s. (доп. выводы к уже рассмотренному по Python):
1) асинхр. запросы к вэб - модуль aiohttp - вывод внесла сюда
2) модуль aio (aio_read) для асинхр чтения - работает только в POSIX OS (aka UNIX, can in Linux)
3) модуль asyncio (NB async/await syntax added in Python 3.5 ) оттестировала.......... на моих данных ОПТИМАЛЬНО пока получилась подгрузка 400 линков в 3 асинхр Tasks за 32сек, при добавлении 4-й Task выполняется 17 сек, НО загружается ~285 линков, остальные Access Denied -- стабильность результата не проверялась! завтра можно посмотреть ещё  :) Async IO in Python: A Complete Walkthrough
4) multiprocessing даёт инструменты реализовать конкурентное программирование (с вытекающими отсюда possible bugs - e.g. Race Condition - чтобы его избежать - надо использовать Inter-Process-Communication [доп накладные расходы])... - НО главное: Почему Python multiprocessing нестабилен - в Windows!... поэтому у меня не все примеры из сети работают - отсюда 2-й пример- вроде ок для начала.... НО NB Python multiprocessing is different under Linux and Windows
(5) хотя удобство функции Map() (в multiprocessing) стоит отметить (для сокращения количества кода)
===
подсказка с habr
Изменено: JeyCi - 25 Ноя 2019 08:41:30
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
bedvit написал:  Базы  ... с доп обработками и join-ми
вообще, справедливо - цены отдельно, штуки отдельно... (отдельные сущности)
но когда цены плавают каждый день, то сразу к ним и штуки join'ю, ещё на этапе загрузки в бд... чтобы потом не join'ить на выгрузке... хотя эти цены и не особо нужны [скорее выступают просто параметром на каждый соотв. день, используются иногда в доп вычислениях], т.к. капитализация считается из др. цен :oops: ... вобщем всё зависит от бизнес-модели... но за справедливое замечание спасибо
(к слову о значимости схемы БД - для скорости обращения к ней)
Изменено: JeyCi - 16 Ноя 2019 17:57:24
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
Цитата
egonomist написал: R легко конектится к бд, можно делать параллельные вычисления, куча пакетов для json.
Цитата
egonomist написал: knime - парсинг json
Parsing .txt files in Json format with a java in knime (правда без ответа)
оно?
так вы на Linux'e сидите?
или эта java и на Windows хорошо себя рекомендует?
или у вас knime на Windows?
Изменено: JeyCi - 4 Дек 2019 19:28:55
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Возможности разработки взаимодействия с БД (выбор инструментов), Javascript ИЛИ VBScript
 
наверно, всё-таки всё банально:
SOCK_DGRAM (UDP) - может заменить обычный read/write в файл;
SOCK_STREAM (TCP) - может заменить обычный ADODBStream;
- для пользовательского ПК ...
и навороты TCP connection нужны только для обмена инфо через сеть (не только) -  делает обмен данными более безопасным, но не сделает его более быстрым в случае ошибочного адреса хоста (т.к. клиент выжидает time-out, чтобы убедиться, что подключиться невозможно)...
===
уместен в условиях реализации сетевой модели данных...
===
:) всё-таки для работы с бд "первостепенно и достаточно" иметь НОРМ. реляционную модель данных !.. а умение MS SQL Server Express работать по TCP/IP - это лишь приятный бонус для многопользовательского режима... имхо... скорость это не увеличит, подключение так же занимает время (только если запрос плохой - берёт time-out на попытку всё-таки подконнектиться), запросы также быстро исполняются + ещё время на разбивку по пакетам, и на клиенте сбор этих пакетов воедино...
вобщем всё упирается в IO (для выгрузки нужной инфо)
P.S.
а с localhost (локал пк) подключиться к localhost (сервер на этом же пк) - не возможно, подключение будет отклонено... у меня так и не получилось... значит действовать по старинке - через ADO - лишь прогонять все запросы поочерёдно, либо силами асинхронности ?... - выделив задачи непосредственно запросов и их обработки для выгрузки
Изменено: JeyCi - 14 Ноя 2019 17:44:44
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 111 След.
Наверх