Никита
Anonymous
В REST контроллере, что являет View?
То есть в обычном контроллере View это html или jsp страница, а в REST?
Утверждения верны?
1. Controller в REST- это обычный контроллер
2. Model в REST - это JSON и объекты базы данных
3. View в REST - это JSON который мы отправляем в response?
Oleksii
Я это хотел уточнить
Robert
Andrii
Это понятно, что все это ОЗУ. Просто (не только в программировании) говорят, что данные хранятся в памяти, выделяется ОЗУ(если не хватает видеопамяти), игры/программы потребляют именно кучу, а не стек
Видеопамять это отдельно на чипе видеокарты. Да, она через PCIe мапится на физическую, но ты проседаешь по скорости.
Программы просто пишут таким образом, что они преимущественно потребляют кучу, а не стек. Но это ап ту ю. Стек просто зарезервированное место, из которого по одной страничке подкладывается память по мере надобности. Как только зарезервированное место закончилось, программа падает. Но сколько надо резервировать, ты можешь управлять. Количество зарезервированного места это больше баланс между потребностями приложения и ловлей бесконечной рекурсии.
Например, допустим ты вначале зарезервировал для стека 1T виртуальной, а всего физической у тебя 128G. Если у тебя будет бесконечная рекурсия, то она отожрёт весь стек достаточно быстро. Ну, пока физической памяти хватает, то вроде бы всё ОК. Но как только она закончится, система уйдёт в swap (если он есть), либо какое-то из приложений получит отказ на выделение памяти, что обычно приводит к крешу.
Andrii
Поэтому методом большого пальца примерно пришли к выводу, что обычно 8M приложениям хватает, а будет бесконечная рекурсия, ну 8M это вообще понты. Но... если твоя программа использует стек активно, то... увеличивай :)
Andrii
$ cat stack.c
#include <stdio.h>
#include <string.h>
#define DELTA 4096
void infinite_recursion(size_t sz, void * prev)
{
static const float factor = 1.0f / 1024.0f / 1024.0f;
printf("Stack now approx %.2f Mb.\n", factor * sz);
/* Dummy operations with stack to avoid optimization */
char var[DELTA];
memset(var, 0xAA, DELTA);
if (prev != NULL) {
memcpy(prev, var, DELTA / 2);
}
/* Do it! */
infinite_recursion(sz + DELTA, var);
}
int main()
{
infinite_recursion(0, NULL);
return 0;
}
$ make stack
cc stack.c -o stack
$ ./stack | tail -5
Stack now approx 7.37 Mb.
Stack now approx 7.37 Mb.
Stack now approx 7.38 Mb.
Stack now approx 7.38 Mb.
Вот простой эксперимент, закрешились около восьми
Andrii
Опять же, попробуем поменять значение стека:
$ git diff
--- a/stack.c
+++ b/stack.c
@@ -1,4 +1,6 @@
+#include <sys/resource.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#define DELTA 4096
@@ -19,8 +21,21 @@
infinite_recursion(sz + DELTA, var);
}
-int main()
+int main(int argc, char * argv[])
{
+ const char * sz_str = argc <= 1 ? "0" : argv[1];
+ int sz = atoi(sz_str);
+ if (sz > 0) {
+ static const size_t one_mb = 1024 * 1024;
+ const size_t stack_sz = sz * one_mb;
+ struct rlimit rlimit = { stack_sz, stack_sz };
+ int status = setrlimit(RLIMIT_STACK, &rlimit);
+ if (status != 0) {
+ fprintf(stderr, "Cannot change stack size, status is %d.\n", status);
+ return 1;
+ }
+ }
+
infinite_recursion(0, NULL);
return 0;
}
$ make stack
cc stack.c -o stack
$ ./stack | tail -3
Stack now approx 7.38 Mb.
Stack now approx 7.38 Mb.
$ ./stack 16 | tail -3
Stack now approx 15.77 Mb.
Stack now approx 15.77 Mb.
$ ./stack 1024 | tail -3
Stack now approx 1012.06 Mb.
Stack now approx 1012.06 Mb.
$ time ./stack 10240 | tail -3
Stack now approx 10121.26 Mb.
Stack now approx 10121.26 Mb.
real 0m2,921s
user 0m0,683s
sys 0m2,243s
Andrii
Всё прекрасно работает, выделили 10G стека, закрешились за две секунды где-то... почти за три
Oleksii
Oleksii
Про видеопамять я говорил в контексте того, что когда ее не хватает, часть ОЗУ используется вместо видеопамяти, хоть скорость ОЗУ и меньше
Andrii
Если у тебя какой-нить APU то да, там память общая, можно играться. Но если у тебя дискретка, то у неё своя память на борту.
Pavel
Салют всем.
Совмещение js и jquery кода плохая идея или не критически?
к примеру, синтаксис самой функции написано на js, а внутри код jq, к примеру обращение к определенному селектору?
Oleksii
Maksim Pozharskiy
Andrii
может буду выглядеть как дурачок, но переспрошу. может не правильно высказался
https://forum.ixbt.com/topic.cgi?id=10:61459
А же не говорю, что нельзя. Я говорю, что сожрёт все ресурсы. В данном конкретном случае судя по всему просто не было сцен, где бы использовались текстуры на 1.8G, я бы так скорее сказал причину. Как это число определяется? Ну прогонят разрабы игру, посмотрят, что максимум было 1.2, c запасом скажут 1.8, чтобы наверняка :)
На самом деле идея проста, GPU не может нарисовать фрейм, если текстуры нет в памяти видеокарты. Поэтому когда мы определяем, что текстуры нет в памяти, то просто останавливаем игру, копируем память из CPU в GPU и продолжаем. При этом может освободить неиспользуемое что-то в GPU.
Oleksii
А же не говорю, что нельзя. Я говорю, что сожрёт все ресурсы. В данном конкретном случае судя по всему просто не было сцен, где бы использовались текстуры на 1.8G, я бы так скорее сказал причину. Как это число определяется? Ну прогонят разрабы игру, посмотрят, что максимум было 1.2, c запасом скажут 1.8, чтобы наверняка :)
На самом деле идея проста, GPU не может нарисовать фрейм, если текстуры нет в памяти видеокарты. Поэтому когда мы определяем, что текстуры нет в памяти, то просто останавливаем игру, копируем память из CPU в GPU и продолжаем. При этом может освободить неиспользуемое что-то в GPU.
а, вот как оно. теперь понял
всю жизнь слышал, что если не хватает видеопамяти, нехватка пополняется за счет озу. а тут прям Вы сказали, что нет и у меня ступор был
Никита
Тут есть гении математики?
Никита
Ай нид хелп.
Никита
Можешь натолкнуть на оптимизированное решение?
Andrii
У тебя на чипе GPU есть ассемблерная команда, получить цвет по текстуре. Ты передаешь туда два (если и три) float и она сама из памяти вычитывает и интерполирует цвет. Она работает только с видеопамятью.
Oleksii
Erik
m700
Gravity
Никита
Никита
Там 1000000 дают и больше.
Igor
Тайминги большие.
у тебя перебор в лоб. второе число нужно оценить сверху и снизу через сумму и первое число.
Виталик Голоенко
Igor
У тебя есть сумма чисел и есть одно из слагаемых ... нужно придумать неравенство которое скажет каким самым маленьким может быть второе число и каким самым большим ...
допустим сумма 500500 перво число 500 ... есть ли смысл перебирать 1,2 или с какого числа нужно начать
и точно так же для максимума ... до какого числа перебирать. При хорошей оценке у тебя там останется всего 2-3 числа которые нужно проверить для каждого i
Igor
пусть i, j искомые числа s - сумма чисел от 1 до n
тогда уравнение такое s - i - j = i * j ... s и i известны нужно придумать неравенство для j
Igor
j может быть от 1 до n ... пускай j с обеих сторон это разные j но мы хотим чтобы выполнялось .
j = (s-i-j) / i
вот если вместо j справа подставить 1 или n мы получим минимум и максимум чему может быть равно j слева
Maksim Pozharskiy
кажется мем 5летней давности)
m700
не смешной мем
Maksim Pozharskiy
не смешной мем
согласен, слишком много джавистов в меме
Maksim Pozharskiy
-5 к социальному рейтингу
m700
Так
Coldavior
Жесть вы задушили молодого
Maksim Pozharskiy
Robert
А чё рубист такой модный, я не понял?
Robert
Блин, и удалили как раз.
m700
да в мусор его, разжигающий мем
Robert
Я б того рубиста...
На аватарку ставил, а не то, что вы подумали.
Igor
Продолжим ;)
в конечном итоге выйдет что то типа
def remov_nb(n):
res = []
s = n * (n+1) // 2
for i in range(1, n+1):
for j in range((s-i-n) // i, min((s-i) // i + 1, n+1)):
if s-i-j == i*j:
res.append((i,j))
return res
P.S. тесты кстати на КВ как всегда говно в этом решении крайние случаи обрабатываются не верно, но оно заходит ;)
Михаил
Сидредин
Сидредин
Сидредин
Anonymous
Anonymous
Всем привет !
Никто не сталкивался проблемой : browsersync не открывает браузер ?
пробовал методы из инета - безрезультатно
21.baxramov
Откликнулся на 400+ вакансии, но 0 приглашение. Кто может помочь с улучшением резюме
21.baxramov
Andrii
finegorko
покажи
21.baxramov
Andrii
Не 1 а больше 400
Ну тогда вакансий, потому что непонятно. Но в целом, как по мне, ситуация в айти обратная — тебе должны писать
21.baxramov
21.baxramov
21.baxramov
Лирик
Вот резюме
Пробел перед запятой в «О себе»
Лично я на такие штуки очень много внимания обращаю
Хотя и понимаю, что это не так чтобы важно
Лирик
Мне кажется, что во многом может мешать то, что тебе 17 лет
Может быть просто убрать это из резюме?
Andrii
Норм, только (1) ссылки некликабельны, как-то неудобно копировать и вставлять (2) информация как-то сильна раскидана по всему резюме.
«Эта была подработка» Зачем это писать?
«Занимался созданием приложений на заказ, разрабатывал новый функционал и исправлял баги в уже существующих приложениях.» Блин, а делал то ты что? Это каждый может написать я вот тоже на работе разрабатываю новый функционал и фишку баги.
github мне скорее не понравился, коммитов мало, сразу большой кусок кода добавляется, ну то такое.. Непонятно, зачем всякие .idea файлы в репе, ну может я не Java разраб.
Я бы просто подсократил бы до одной страницы, вначале вынес бы Образование, Ключевые навыки
Сертификаты бы тоже написал бы одной строкой, и не акцентировал бы внимание на курсы, рассказал бы больше о проекте где работал
Andrii
А не знаю, как в РФ, но на Украине лучше CV на английском языке
Шурок
Вот резюме
Резюме c HH.ru - я хз
Но почему-то думаю такое даже не смотрят
Указание возраста
Не кликабельные ссылки
Упоротное “где хочу работать”
Фиг пойми какой опыт работы
Криво оформленный опыт работы
Курсы без ссылок
Школу можешь нафиг убрать
Ну и не на английском с английским Б2
Виталик Голоенко
Вам реал делать нечего:D
m700
имхо почему нет - 1 возраст 2. судя по образованию вайтишник . А так резюме в целом намного лучше чем многие видел в разборах резюме
Andrii
m700
Vyacheslav
m700
до 18 устроться реально сложно, не зряже 50% сидящих по 228, по работать решили
Vyacheslav