Maxim
Alexander
я бы кстати попробовал все-таки без воркеров и на спавн горутин переделать. не должно быть хуже в твоем случае. это там если 100500 заданий, то фиксированные воркеры полезны
Alexander
Несин Данила
на сколько?
Timeout 15s, а замедление обработки где-то в этих пределах
Alexander
сколько адресов?
Несин Данила
сколько адресов?
https://pastebin.com/TGaqM7Vi
27 адресов, 20 воркеров
xasai.denet
Тут все от дела зависит. Вот хорошая статья на эту тему https://medium.com/@val_deleplace/go-code-refactoring-the-23x-performance-hunt-156746b522f7
Alexander
там нагрузка прям такая лютая шопесдец. мб только если это дело все на распберри пай каком
Alexander
есть, если у тебя IO
Maxim
Maxim
От таймаута сети и заканчивая чем угодно это может быть...
Alexander
есть, если у тебя IO
и в случае автора как раз должна и 1000 таких одновременных запросов работать нормально (чего там? открыть сокет, пару байтиков туда, пару байтиков сюда). странно, что получается такой результат
Несин Данила
@edwvee, @shinanca хорошо попробую завтра сделать тоже самое на простых горутинах, без обертки в виде воркеров и сравнить результаты
Alexander
ну я про это и говорю
Gilbert
https://www.linkedin.com/feed/update/urn:li:activity:6841733921806405632/
Alexander
а кто-нибудь объяснит фишку, что latency при установлении tcp соединения к localhost ощутимо выше(десятки процентов), чем к 127.0.0.1? в качестве сервера гошка (fasthttp, net.Listen), а клиента пыха (curl и fsockopen соответственно). проверялось на centos и clear linux. большее кол-во экспериментов делать было лень
теперь что ли все localhost переписывать на 127.0.0.1?
Alexander
Println
Alexander
ааа
Alexander
ну сделай чтобы цикл не обходил последний четный элемент и выводи его руками
Alexander
отдельно в смысле, без пробела
Alexander
лучше тогда строки сразу считывать
Alexander
fmt.Printf("%v", true_slice)
👀
https://golangdocs.com/variadic-functions-in-golang
См: pack and unpack operator
Alexander
Если б твою задачу так можно было решить, ее бы тебе и не давали
𝓢𝓮𝓻𝓰𝓮𝔂
package main
import (
"fmt"
)
func main() {
a:=[]interface{}{1,2,3}
fmt.Println(a...)
}
𝓢𝓮𝓻𝓰𝓮𝔂
)
Alexander
Нормъ)
Michael
Попробуй fmt.Print(sliece[i], " "), Можно ссылку на курс/степ?
🔥
🔥
Правильные реализации gethostbyname видят такие запросы и автоматом отдают лупбэк адрес, но не все. Видать у тебя именно "неправильная" реализация в системе
🔥
Зачастую проверить такое можно изменив запись в /etc/hosts у локалхоста, если при лукапе он отдает запись именно оттуда значит что у тебя тебя версия без автоматического определения лупбэк адресов
Michael
ну, у меня приняли такое ( fmt.Print(workArray[i], " ") ) (https://stepik.org/lesson/228265/step/5?unit=200798)
xasai.denet
Шарящие, подскажите, в какую SQL таблицу стоит и не стоит добавлять индексы.
1. Таблица с редко изменяемыми данными, и ее поля будут редко запрашиваться.
2. Таблица которая чаще всего будет меняться, запрашиваться и тд
Alexander
От потребности в скорости чтения зависит. Когда-нибудь у тебя будет вариант, когда без индекса будешь ждать секунды-минуты, и вопрос отпадет сам собой
xasai.denet
понил , сенкс
xasai.denet
а есть такая тема, что на primary key postgres сам добавляет этот индекс?
xasai.denet
или это миф в моей голове
Alexander
1 вариант если очень в запись упираешься, не надо уникальных индексов и первичных ключей посмотри кликхаус - скорость записи батчами сказочная, скорость поиска без индекса в миллионах строк в сотни раз быстрее обычных субд
Alexander
Emil
Индексы нужно прописывать вроде, и нужно прописывать, если оно имеет смысл(не шарю, что сам где-то прочитал, транслирую)
xasai.denet
CREATE TABLE IF NOT EXISTS users (
id uuid PRIMARY KEY;
);
CREATE INDEX IF NOT EXISTS idx_user_currency_user_id ON users (id);
xasai.denet
я имею ввиду нижнюю строку
xasai.denet
надо пистаь
Alexander
Нет
xasai.denet
если стоит primary key
xasai.denet
ok
xasai.denet
thx
Alexander
По сути без индексов в реальной жизни чтение не происходит. Но тут можно долго говорить
xasai.denet
В доке только найти не могу где это написано(
xasai.denet
xasai.denet
Найдено
Alexander
https://www.postgresqltutorial.com/postgresql-primary-key/
Maks
А зачем индекс на примари кей делать
Alexander
When you add a primary key to a table, PostgreSQL creates a unique B-tree index on the column or a group of columns used to define the primary key.
xasai.denet
Maks
Помимо б-три индексов есть еще гист и гин. Индексы так же можно делать на конкретные жсон поля в колонке.
Maks
Индексы увеличивают размер занимаемый базой, замедляют вставку данных немного
Maks
И изменение тоже вроде
Maks
Но это несравнимо с пользой от ускорения поиска в очень больших таблицах
Maks
Когда в одном случае приложение падает по таймауту из за слишком долгого запроса в бд(не успевает за таймаут отдать ответ клиенту), а в другом ответ отдастся за 20 секунд например
Maks
У пагинации тоже есть свои нюансы когда идешь на какую то очень далекую страницу через оффсет
xasai.denet
У меня пока все очень простенько, но думаю и до этого дойду)
xasai.denet
спасибо для пищу для мозга
xasai.denet
за *
Alexander
Вообще советую, как разберёшься более менее с sql на уровне сделать что-то, начни бенмаркать запросы, наполнять базу ощутимым количеством записей, играться с индексами. Без этого понимания не будет
Alexander
У меня знакомый положил сайт на нормальном железе, добавив один селект и не проставив под него индекс)
Alexander
Хотя в программировании при этом не Джун далеко был
Suleiman
Ребят, firebase это типа готовый бэк? Для стартапов?
xasai.denet
хы) Ну я только начал ковырять по работе. Думаю если что-то серьезно не так сделаю, то дадут по рукам заранее. Все равно - лучше ошибаться и учиться, чем не ошибаться и учиться)
Maks
Alexander
так есть же онлайн добавление
Maks
Maks
Вроде так пишется
Maks
Позволяет не блокируя таблицы производить индексацию