
Artem
21.02.2017
08:20:35
там вхождение надо

Anatoly
21.02.2017
08:20:38
Но мы же вполне конкретную задачу решаем, а не случай для любой произвольной строки
С ограничениями можно попробовать своё префиксное дерево построить.
Но там уже с его быстрым построением проблемы.

Google

Artem
21.02.2017
08:27:17
Если с вхождением то тут сложней. Можно построить что-то типа обратного индекса:
1. для каждой буквый указать у каких пользователей есть она. Например в твоем примере для d => [1,3,5,6,7].
2. идешь по слову, для каждой буквы из слова, собираешь список пользователей. где эта буквы встречается и пересекаешь списки
Но тут вопрос целесообразности возникает)
все упирается в то, сколько реально у тебя этих пользователей и слов)
все от конкретной задачи зависит

Khasan
21.02.2017
08:34:48
Друзья добрый день
Кто нибудь может рассказать насколько сложно сделать обертку для С++ библиотеки?

Му
21.02.2017
08:40:15
не сложно
если конечно в библиотеке не 20 тыс. методов
мне кажется это даже автоматизировали давно

Khasan
21.02.2017
08:42:56

Му
21.02.2017
08:44:26
ты знаешь как вызывать из C# методы из unmanaged dll`ки?

Khasan
21.02.2017
08:45:56

Му
21.02.2017
08:46:16
а IronPyton есть p/invoke?

Google

yegorf1
21.02.2017
08:46:45

Khasan
21.02.2017
08:46:49

yegorf1
21.02.2017
08:46:50
Как можно решить эту проблему?
Из вариантов это
а) Обновлять только измененные поля
б) Хранить эти обьекты в ОЗУ, и сохранять раз в вечность
в) ...

Му
21.02.2017
08:49:03
Б

Axm
21.02.2017
08:49:10
я бы для начала остановился на А)

Му
21.02.2017
08:49:16
что это?
Platform Invocation Services (PInvoke) allows managed code to call unmanaged functions that are implemented in a DLL.

yegorf1
21.02.2017
08:49:36

Axm
21.02.2017
08:50:15
делай тогда по таймеру раз в N секунд

yegorf1
21.02.2017
08:50:35
А в остальное время хранить в ОЗУ?

Axm
21.02.2017
08:51:06
ну да, почему нет

yegorf1
21.02.2017
08:51:11
Хм
Ну хорошо, спасибо
Я просто думаю, может есть еще варианты

Gid
21.02.2017
08:51:28

yegorf1
21.02.2017
08:51:55
Так говоришь, будто они там каждый год оптимизируют структуру 20 летней давности
В смысле, я уверен, что они с первой попытки написали все как надо

Google

Gid
21.02.2017
08:52:18
Алсо я вот не понимаю откуда тут столько дроча на производительность. Можно сделать или нормально или медленно. Если нужно сделать быстро - Шарп не тот язык.
Байт трахнуть ради 0.0001с выигрыша
Это как-то не по-шарповски

Artem
21.02.2017
08:53:25
Очень очень странный запрос

Gid
21.02.2017
08:53:41
Шарп чтоб код писать как белый человек. А производительность это о функциональщике со штангой раз 5000 рублей.

yegorf1
21.02.2017
08:53:42
А как надо?
С БД не силен от и спрашиваю

Му
21.02.2017
08:54:18

Gid
21.02.2017
08:54:21
Ух е, почему у тебя в стейтменте запрос идет

Artem
21.02.2017
08:54:27

yegorf1
21.02.2017
08:54:28

Ilya
21.02.2017
08:54:29

Gid
21.02.2017
08:54:29
Сделай чтоб читаблеьно было

yegorf1
21.02.2017
08:54:37

Artem
21.02.2017
08:55:17
йеп
причем делаешь это по одной записи. Это не самое лучшее решение.

yegorf1
21.02.2017
08:55:30
Хм, действительно

Artem
21.02.2017
08:55:48
причем получаешь цеилком и сохраняешь
т.е. ты берешь и перелопачиваешь целиком всю коллекцию

yegorf1
21.02.2017
08:56:48
Ага, я понял про это
И проверку на существование нужно убрать еще, пожалуй в этом месте

Artem
21.02.2017
08:56:55
во-первых. монго поддерживает операции. Допустим, тебе надо в нескольких документах обновить поле. Для этого есть специальный запрос

yegorf1
21.02.2017
08:57:12
Там все итемы уникальны

Google

Artem
21.02.2017
08:57:19
и?

Khasan
21.02.2017
08:57:22

Artem
21.02.2017
08:57:51
прежде чем добавлять кеш и прочее, сначала оптимизируй базу

yegorf1
21.02.2017
08:58:04
и?
ну я никогда не знаю как совпадет с другим kindom'ом

Artem
21.02.2017
08:59:14

yegorf1
21.02.2017
08:59:30
Обновляет всякие ништяки для обьекта

Artem
21.02.2017
08:59:41
прям все-все?

yegorf1
21.02.2017
08:59:51

Admin
ERROR: S client not available

Axm
21.02.2017
09:00:02
чо за игра?

yegorf1
21.02.2017
09:00:09
yessirgame.ru

Му
21.02.2017
09:00:10

yegorf1
21.02.2017
09:00:12
In dev

Artem
21.02.2017
09:01:01
Суть следующая - тебе в базу надо писать, только то, что реально изменилось
а не целиком
особенно на больших документах

yegorf1
21.02.2017
09:01:46
Я вот не уверен, что это реально ускорит, потому что может обновиться много вещей и как-то это отловить это довольно интересная задача, но я подумаю в общем
Спасибо

Artem
21.02.2017
09:02:08
добавив кеш - ты только все у себя усложнишь
зачем ты вообще монгу взял?)

yegorf1
21.02.2017
09:02:58
Привычка с питона

Google

yegorf1
21.02.2017
09:03:05
¯\_(ツ)_/¯

Gid
21.02.2017
09:03:27
Ну монгу можно потренироваться норм
Но если ты не знаешь мсскл

Artem
21.02.2017
09:03:36
ты кстати уверен, что у тебя документ никогда не будет больше 16мб?

yegorf1
21.02.2017
09:04:04
хм, нет
а это проблема?

Artem
21.02.2017
09:04:10
да)
ограничения есть на размер документа в монге
у тебя все тормоза от того, что ты берешь все-все читаешь. А затем все-все записываешь
по сути ты каждый раз копируешь целиком всю коллекцию

yegorf1
21.02.2017
09:05:09
Угу

Му
21.02.2017
09:05:20
и чем больше будет королевств, тем будет медленее

yegorf1
21.02.2017
09:05:32
Ну это логично

Artem
21.02.2017
09:05:37
нет)
у тебя скорость будет падать сильно быстрее, чем расти данные

Му
21.02.2017
09:06:17
а потом кончится память
процесс упадёт

Artem
21.02.2017
09:06:34
в монге есть отличные инструменты

Му
21.02.2017
09:06:38
и данные в монге станут не консистентными

Artem
21.02.2017
09:06:38
запросы разные
проекции
Эта группа больше не существует