Компания Google представила релиз web-браузера Chrome 80. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, возможностью загрузки модуля Flash по запросу, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Следующий выпуск Chrome 81 запланирован на 17 марта...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=52312
> Подобная оптимизация позволила сократить потребление памяти в куче на 40%Т.е. раньше указатели занимали более 40% кучи?
ну вот они любители многомерных массивов char[16][16][16] будет на 90% дешевле если написать char[16*16*16] и расчитывать по формуле z*256+y*16+x что и дает замедление в 8%-10%
что?
> многомерных массивовМногомерные массивы - зло.
Но хром же на C++. Там нет C-массивов
Хром работает на компьютере, а чтобы производит адресацию памяти нужны указатели (регистры индекса на ассемблере), как прочитаешь хотя-бы "Код" питцольда приходи поговорим
"Чарльз Петцольд / Charles Petzold — программист, автор технической литературы по компьютерной тематике. Популяризатор Microsoft Windows" :)))
Всё правильно. Все эксперты опеннета именно это и советуют.
Странно, мне навскидку вспоминается только его (?) "OS/2 Presentation manager programming" или как-то так.
> ну вот они любители многомерных массивов char[16][16][16] будет на 90% дешевле если
> написать char[16*16*16] и расчитывать по формуле z*256+y*16+x что и дает замедление в 8%-10%Стесняюсь спросить - а по какой формуле у вас доступ к "оригинальному" char[x][y][z]? o_O
Хорошо что боишься, потому что "оригинал" расчитываеться не по формуле а по таблице указателей
> Знаток
> Хорошо что боишься, потому что "оригинал" расчитываеться не по формуле а по таблице указателейХм *смотрит на ник - какой хороший, годный и подходящий для опеннета! И вздыхает: как хорошо, что все таки никто не начал объяснять, на кой черт там сдались таблицы указателей и почему компиляторы об этом не слышали*
% cat arr2.c && gcc -S -O2 -m32 -masm=intel -fverbose-asm arr2.c && more arr2.s
int* foo(int x, int y, int z, int val) {
static int bar [10][10][10] = {0};
bar[x][y][z] = val;
return bar;
}foo:
.LFB0:
.cfi_startproc
# arr2.c:1: int* foo(int x, int y, int z, int val) {
mov eax, DWORD PTR [esp+8] # y, y
# arr2.c:3: bar[x][y][z] = val;
lea edx, [eax+eax*4] # tmp90,
imul eax, DWORD PTR [esp+4], 100 # tmp92, x,
lea eax, [eax+edx*2] # tmp93,
mov edx, DWORD PTR [esp+16] # val, val
add eax, DWORD PTR [esp+12] # tmp94, z
mov DWORD PTR bar.1848[0+eax*4], edx # bar, val
# arr2.c:5: }
mov eax, OFFSET FLAT:bar.1848 #,
ret
.cfi_endproc
Как научишься создавать многомерный массив на куче, а не на стеке, приходи поговорим
Гм-хм, вы слишком переоцениваете "откровение" из детского мультика: "Как вы яхту назовете ...".> Как научишься создавать многомерный массив на куче, а не на стеке, приходи поговорим
Предпочту подождать с разговором, пока анонимный "Уважаемый", "Знаток", "Эксперт" (эпитет "Скромный" не упомянут видимо из скромности) не подучит матчасть 🙄
cat arr3.c && gcc -O2 arr3.c && ./a.out 2 2 1 1337
#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define DIM 3
#define TYPE intconst size_t ARR_LEN = DIM * DIM * DIM ;
const size_t ARR_SIZE = ARR_LEN * sizeof(TYPE);typedef TYPE array[DIM][DIM][DIM];
void foo(array bar, int x, int y, int z, char val) {
bar[x][y][z] = val;
}int main(int argc, char** argv) {
array *arr = malloc(ARR_SIZE);
for (size_t i = 0; i < ARR_LEN; i++) {
*((TYPE*)arr + i) = atoi(argv[4]) + i;
printf ("%p:%lu = %lu\n",((TYPE*)arr + i), i, atoi(argv[4]) + i);
}
foo(*arr, atoi(argv[1]), atoi(argv[2]), atoi(argv[3]), atoi(argv[4]) + 1);
for (size_t x = 0; x < DIM; x++)
for(size_t y = 0; y < DIM; y++)
for(size_t z = 0; z < DIM; z++)
printf("[%lu][%lu][%lu]: %d\n", x,y,z, (*arr)[x][y][z]);return 0;
}
0x800a45000:0 = 1337
0x800a45004:1 = 1338
0x800a45008:2 = 1339
0x800a4500c:3 = 1340
...
0x800a45060:24 = 1361
0x800a45064:25 = 1362
0x800a45068:26 = 1363
[0][0][0]: 1337
[0][0][1]: 1338
[0][0][2]: 1339
..
[2][1][2]: 1360
[2][2][0]: 1361
[2][2][1]: 58
[2][2][2]: 1363
foo:
.LFB1:
.cfi_startproc
# arr3.c:12: void foo(array bar, int x, int y, int z, char val) {
mov eax, DWORD PTR [esp+8] # x, x
# arr3.c:13: bar[x][y][z] = val;
mov ecx, DWORD PTR [esp+4] #, bar
mov edx, DWORD PTR [esp+12] # y, y
lea eax, [eax+eax*8] # tmp95,
lea eax, [ecx+eax*4] # tmp97,
movsx ecx, BYTE PTR [esp+20] # val, val
lea edx, [edx+edx*2] # tmp100,
add edx, DWORD PTR [esp+16] # tmp101, z
mov DWORD PTR [eax+edx*4], ecx # *_3, val
# arr3.c:14: }
ret
.cfi_endproc(это все помимо того, что абсолютно никто не мешает обернуть обращение к одномерному массиву в макрос и не париться - но … раз анонимы в книжке^W на стековерфлоу прочитали "нужно использовать массив указателей на указателей, иначе никак!", то так и будут, не задумываясь, их использовать 🙄)
И, чтобы начать немного соответствовать никам, не забудьте завернуть доказательства, что последовательная загрузка из _таблицы указателей_ :
void foo2(int*** bar, int x, int y, int z, char val) {
bar[x][y][z]
}foo2:
.LFB1:
.cfi_startproc
# arr3.c:14: bar[x][y][z] = val;
movsx rsi, esi # x, tmp107
movsx rdx, edx # y, tmp108
movsx rcx, ecx # z, tmp109
movsx r8d, r8b # val, tmp110
mov rax, QWORD PTR [rdi+rsi*8] # *_3, *_3
mov rax, QWORD PTR [rax+rdx*8] # *_7, *_7
mov DWORD PTR [rax+rcx*4], r8d # *_11, val
# arr3.c:16: }
ret
.cfi_endproc
будет быстрее вычисления адреса (особенно при размерах, кратных 2-м).foo:
.LFB1:
.cfi_startproc
# arr3.c:13: bar[x][y][z] = val;
movsx rsi, esi # x, tmp101
movsx rdx, edx # y, tmp102
movsx rcx, ecx # z, tmp103
movsx r8d, r8b # val, tmp104
sal rsi, 10 # tmp93,
sal rdx, 4 # tmp97,
add rsi, rdi # tmp94, tmp100
add rdx, rcx # tmp98, z
mov DWORD PTR [rsi+rdx*4], r8d # *_3, val
# arr3.c:14: }
ret
.cfi_endproc
Чем больше кода, тем меньше людей поймут, что ты тролль, и создаешь массив на стеке и присваешь его адрес указателю, молодец но меня не обманул.
> Чем больше кодаСпециально написал аж 27 строчек, думал аноним меня не раскусит :(
array *arr = malloc(ARR_SIZE);
> создаешь массив на стекеАноним меня поймал! :(
> и присваешь его адрес указателю, молодец но меня не обманул.
Все еще с нетерпением ждем-с пруфов для
>> и дает замедление в 8%-10%(или внятного разъяснения, на кой черт там сдались указатели на указатели)
> #define DIM 3Зачем ты придуриваешься? У тебя же фиксированного размера массив.
>> #define DIM 3
> Зачем ты придуриваешься? У тебя же фиксированного размера массив.Затем же, зачем ты не читаешь то, на что пишешь ответ?
>>> "оригинал" расчитываеться не по формуле а по таблице указателей
>> Как научишься создавать многомерный массив на куче, а не на стеке,
> и создаешь массив на стеке и присваешь его адрес указателюГде там было про дин. размер?
Возможно, вместо важного надувания щек анонимам нужно было просто более внятно выражать свои мысли?
Нет там никакой таблицы указателей. a[][N] — это массив массивов, а не массив указателей. Представление a[N][N] и a[N*N] в памяти одинаково на любой платформе. Разница только в типе a[N].
>Представление a[N][N] и a[N*N] в памяти одинаково на любой платформе.То есть это вообще гарантировано:
https://stackoverflow.com/a/36647342
Предельно наглядно:
#include <stdio.h>int
main (void)
{
char a[10][10] = { 0 };
char *p = (char *)a;
a[1][2] = 'h';
printf ("%d\n", p[12]);
}./a.out
104
Ох артист, создаешь массив на стеке и берешь его указатель, создай ДИНАМИЧЕСКИЙ МАССИВ с РАНДОМНЫМ размером, хотя мы уже все поняли что ты в Си не могешь.
>Ох артист, создаешь массив на стеке и берешь его указательЧто такое «указатель массива»?
>создай ДИНАМИЧЕСКИЙ МАССИВВ C нет динамических массивов. Вы путаете массивы с указателями, как типичный первокурсник.
Пожалуй, я сам немного запутался. Конечно, никто не мешает завести массив в динамической памяти:
#include <stdio.h>
#include <stdlib.h>int
main (void)
{
char (*ap)[5][10] = calloc (1, 50);
char *p = (char*)ap;
(*ap)[1][2] = 1;
printf ("%d\n", p[12]);
}./a.out
1
> создай ДИНАМИЧЕСКИЙ МАССИВ с РАНДОМНЫМ размером,
> хотя мы уже все поняли что ты в Си не могешь.Пишите под прежним ником "Знаток", "Эксперт". Не нужно позорить этот – он этого не заслужил 🙄
(cat arr.c && gcc -O2 arr.c && ./a.out 700 10|(head -n3 && tail -n3 ))|cb
#include <stdio.h>
#include <stdlib.h>#define TYPE int
#define _LOOP(VAR, N) for (size_t VAR=0; VAR<N; VAR++)
#define N_LOOP(V1, V2, V3, N) _LOOP(V1,N) _LOOP(V2,N) _LOOP(V3,N)static void init(size_t len, TYPE arr[len][len][len], TYPE val) {
N_LOOP(i,j,k,len) arr[i][j][k] = val++;
}static void out(size_t len, TYPE arr[len][len][len]) {
N_LOOP(i,j,k,len) printf("[%lu][%lu][%lu]: %d\n", i, j, k, arr[i][j][k]);
}int main(int argc, char** argv) {
size_t len = atoi(argv[1]);
int val = atoi(argv[2]);
typedef TYPE array[len][len][len];
array *arr = malloc(sizeof(TYPE) * len * len * len);
init(len, (void*)arr, val);
(*arr)[len-1][len-1][len-2] = 1337;
out(len, (void*)arr);
return 0;
}
[0][0][0]: 10
[0][0][1]: 11
[0][0][2]: 12
[699][699][697]: 343000007
[699][699][698]: 1337
[699][699][699]: 343000009
Вместо придуривания и балабольства мог бы просто одну строчку написать что «в C99 появились variable length array». Закончишь свой институт — может быть и научишься с людьми общаться.
> Вместо придуривания и балабольства мог бы просто одну строчку написатьТ.е. по теме возразить уже нечего? Ну слава Биту!
> мог бы просто одну строчку написать что «в C99 появились variable length array».Угу-угу, "Знаток" загуглил бы, половину не нашел, другую толком не понял, но увидел бы на стековерфлоу что-то о "GCC allocates memory for VLA on stack" и продолжил бы далее "изоблачать".
Ну и лично мне были интересны тайминги/разница между многомерными массивов через жо^W указатели-на-указатели и "классические, вычисляемые в рантайме" - я замерил и (не пропадать же коду зря) вырезав лишнее, скинул сюда.
И еще интересно, что "Уважаемый" "Знаток" "Эксперт" "Риттчи" "̶С̶к̶р̶о̶м̶н̶я̶ш̶к̶а̶"̶ оказывается о VLA не знал, но упорно лез со своим ценным мнением о Си, необходимости таблиц указателей для многомерных массивов и прочей ереси – и при этом "балабол" оказался я? o_O> и научишься с людьми общаться.
Судя по ответам ниже - вы и тут "Эксперт" (непризнанный, правда) :)
Понимаете, есть люди, а есть нагловатые, хамоватые и ламероватые анонимы, с завышенным ЧСВ и ценным мнением (впрочем, анонимность этому весьма способствует - если что: "это другой аноним, это не я! Чур!")
Которые, в ответ на _нормальное общение_ в #3.26, #5.40, сначала продолжают гнуть пальцы и хамить, а потом почему-то обижаются, когда их, просто и без политесов, макнут носом в лужу.
Аноним и опозорился
Это, я думаю, не про массивы. Речь идёт о жабаскрипте, а не о C. js отличается динамической типизацией и сборкой мусора. js на уровне синтаксиса не различает объект и указатель на объект. Это значит, например, что в нём невозможно создать вещь типа:(1)
struct Container {
struct Contained inner;
}Можно лишь что-то вроде:
struct Container {
struct Referenced *inner;
}(2)
Если же вернутся к динамической типизации и сборке мусора, то эти вещи нагружают указатели новыми смыслами и функциями, которыми не обладают C'шные указатели. Промежь битов указателя может быть запрятан бит сборщика мусора, может быть ещё несколько бит тега типа (это помогает работать с некоторыми примитивными типами без ссылок -- если int сузить с 32 бит, до 28, то в освободившиеся 4 бита можно впихнуть бит сборщика мусора и 3 бита тега типа, по которому можно отличить в рантайме указатель от int'а, в elisp, например, так и сделано).И здесь возникает ещё одна интересность: если переменная не имеет типа, значит она может содержать в себе любой объект, то есть она может содержать в себе указатель, а значит под переменную надо выделять место как под указатель. Нам нужен массив восьмибитных интов, но вместо него мы выделяем массив 64-х битных интов. С этим можно бороться реализуя тип "массив восьмибитных интов" на уровне интерпретатора/виртуальной машины, но такие штуки всё равно приводят к проблемам, например если нам хочется передать в какую-нибудь функцию указатель на такой int из массива куда-нибудь, то что делать? Создавать дескриптор типа (указатель на упакованный/невыровненный u8), создавать объект этого типа, который будет содержать в себе указатель на дескриптор (ради типизационного динамизма) и указатель на u8, и передавать в функцию указатель на этот объект?
Я не знаю, как там сделано в V8, но суть в том, что попытки спрятать от программиста различие между указателем и объектом в любом случае приводят к увеличению количества указателей.
(3)
Но js в браузере при этом работает не с произвольными структурами, а со структурами, описывающими html, то есть составленными из многих нодов со многими перекрёстными ссылками между ними. Если включить фантазию и подумать, как можно html тег представить в памяти, то в нём напрашивается хранить набор пар (строка, строка), представляющих собой атрибуты и их значения, а это может нечаянно вылиться в то, что на каждый атрибут придётся хранить три указателя: указатель на пару значений в массиве, а эта пара значений -- это пара указателей на значения. Список дочерних нодов -- это тоже список указателей. CSS -- это тоже "каскад" указателей. Сами структуры вида "шёл указатель по указателю, взял указатель за указатель, и указатель указатель указатель указатель".Вот навскидку три возможные причины. Я полагаю, что гугл в v8 так или иначе пытается бороться с каждой (и с десятком других, которые мне не пришли в голову), но тут я не копенгаген, никогда не интересовался внутренностями v8. Можно (1) притянуть за уши к твоим многомерным массивам, и сказать, что (1) -- это лишь обобщение того, о чём ты говоришь. Но можно и не притягивать, а просто смотреть правде в глаза: многомерные массивы -- наименьшая из причин порождающая проблемы с памятью в js.
Ну, кучи разные бывают.
Например - Мала куча, да вонюча!
Таки реально навоняли - в соседней новости про эксплойт которому такая оптимизация удобна оказалась.
Хотелось что-то написать, но не буду.
А я буду.> Браузер Chrome отличается ... наличием системы отправки уведомлений в случае краха
Потому что пользуюсь браузером, в котором нет случаев краха. И это не сабж.
>Потому что пользуюсь браузером, в котором нет случаев краха.Elinks? Lynx ? W3M ?
telnet жешь
Я тоже пользуюсь браузером, в котором нет случаев краха. И это сабж. А пресловутую "систему отправки уведомлений в случае краха" я в глаза не видывал. Для меня она как единорог: никто не видел, но все о ней говорят. И говорят про нее в основном тогда, когда требуется назвать отличие хрома от хромиума.
Хм... И це шо?
>...пользуюсь браузером, в котором нет случаев крахаIE4 ?
И правильно. Чего трындеть?! Статистика говорит сама за себя.
Всегда пользовался только лисой. Сколько не пытался юзать хром - ну не нравится он мне....
В хроме неудобно будет пользоваться +1000 вкладок даже если он их осилит.
>неудобноДа не, нормально. Постоянно штук 200 висит. Тысяч как в фф правда нет, но фф теперь потребляет гигабайты гигабайт памяти и на не подгруженные вкладки, стало невозможно пользоваться. Выкинул все вкладки и начал новую жизнь, каждая запуск браузера теперь начинается с новой сессии. Удобно.
Из инета: "Я тоже раньше держал сотни вкладок, ведь в них такая важная инфа, которую я позарез должен впитать...А потом просто позакрывал их все нафиг по пьяни. И ничего ужасного не случилось."))
Врёт. Важная в закладках.
Речь о вкладках.
кстати есть же функция "Bookmark All &Tabs..."
Угу, хромоног у нас зато перестал жрать гигабайты на сессии из 5 вкладок+ютуб, конечно.
> Угу, хромоног у нас зато перестал жрать гигабайты на сессии из 5
> вкладок+ютуб, конечно.А это зависит от сайтов. И дополнений. Вот adblock гигабайты памяти потреблял, ublock+umatrix экономят памят на сайтах за счё
> Угу, хромоног у нас зато перестал жрать гигабайты на сессии из 5
> вкладок+ютуб, конечно.А это зависит от сайтов. И дополнений. Вот adblock гигабайты памяти потреблял, ublock+umatrix экономят память на сайтах за счёт отключения скриптов и рекламы. Ютуб можно и без magic actions смотреть, конечно. Гигабайты зависят от числа сайтов тоже, но в фф пара вкладок уже гигабайты.
А это никому не нужно. Даже теоретически. А подобные опусы, которые всё время проскакивают о Лисе, о Луне, о Василиске, о Хамелеоне (свят-свят!), и еще хрен знает о ком, больше похоже на мерянее пиписьками в песочнице.
Ну и у кого длиннее?
У дяди, прячущегося в кустах возле этой песочницы.
Какой ещё дядя? Эксгибиционист? Или передаст?
Ctrl+Shift+D, научись, наконец-то, пользоваться браузером.
Да нет, нормально. Всегда открыты 2150 вкладок. Правда считать их зае...ался. А так нормально.
> открыты 2150 вкладок. считать их зае...алсяПопробуй закрыть "другие вкладки". Браузер напишет количество вкладок +1. Советую на запрос ответить "да".
Правильно делаешь. Хром - это не браузер!
И файрфокс не браузер! А что браузер?
Pale Moon.
О йес! Палемун?!
Нее. Хамелеон! Только хардкор!
Lynx
Хм... Чувак, ну если тебе он не нравится, это ещё не значит, что ты прав.
Мне не нравится манная каша.
Вот. Правильно. Настоящее свободное ПО. Которое заткнуло за пояс всех. И правит вэбом (читай, крутит всех на своём... нефритовом стержне)
>Настоящее свободное ПО. Которое заткнуло за пояс всех.Это каким боком гугло хром спо? Не путай проприетаршину с хромиумом...
СПО не СПО - людям на это ПО...!
И тем не менее забавно - новость именно про хром, а никто не против. А в соседней теме про миранду, например, тонну кирпичей отложили из-за того что Windoows-only несмотря на то что GPL.
Да она вообще нафиг никому уже не нужна.
Оно и заметно, да, судя по комментам, как она никому не нужна.
Единственный нормальный мультиклиент, никому (из 1%) не нужен.
Просто время этих сипулек вышло. На смену пришла другая попсовая поросль.
Жаль только что PR контролируется корпорацией и лицензия не GPL3, очень смешно когда тебе твой же код не дают на твоём личном например телевизоре запустить, потому что корпорация решила по другому.
> можно получить сведения о производительности воспроизведения видео для корректировки битрейта, разрешения и других параметров видеоНа стороне сервера есть несколько потоков с разным качеством, предварительно закодированных? А как раньше RealVideo на лету корректировал битрейт? Я даже на диалапе смотрел, с плохим качеством, в маленьком окошке, но тогда это было круто. На лету кодировал для каждого клиента? (а это нагрузка на CPU). По другому никак не получается.
> требуется запустить браузер с опцией --enable-ftp
А чтобы была возможность сохранять страницы в формате MHT, нужно запускать с опцией --save-page-as-mhtml
Скоро всё в опции переедет. Это для удобства пользователей; если тебе нужно - включи.
ну зачем же все - скоро эти опции переедут в /dev/null как уже окончательно deprecated (тем более что телеметрия показала, что ими не пользуется 100% пользователей), а в опции переедет еще что-то ненужное для работы гуглосайтов и гуглозондов.
> Скоро всё в опции переедетОни из chrome:config в параметры запуска переехали. Значит, скоро совсем выпилят. Бэкапьте установочные пакеты, кому нужно.
> На стороне сервера есть несколько потоков с разным качеством, предварительно закодированных?На ютубе именно так.
> А как раньше RealVideo на лету корректировал битрейт?банально - видео с эффективным разрешением размером с почтовую марку ("эффективное" - это когда при увеличении никаких новых деталей не появляется) и битрейтом, пригодным для твоего диалапа, причем с никаким качеством - кодировать на ходу не представляло ни малейшей проблемы.
Да и клиентов было полтора инвалида.
А ютруп действительно хранит пять-десять версий одного и того же. Разных для разных роликов.
Диски нынче- дешевые.
> диалап
> полтора инвалидаПомню на сайте Чадова объявили, что в такое-то время будет с ним прямой эфир (чат или что-то такое). Я зашел, а сайт даже не открылся. Не рассчитали нагрузку.
ну бывает, причем к real-video это вряд ли имело хоть какое отношение - когда в моде был dialup (и мы таки держали real) - нам ни разу не приходило в голову держать его на том же корыте, где крутилась веб-морда, на которую ты мог бы зайти.Так что и там, скорее легла морда (небось, с какими-нибудь мерзотными гостевыми книжками и счетчиками, которые в те годы первыми ложились от микроскопической нагрузки), а до энкодера дело даже и не дошло ;-)
"db?.user?.name?.length" - полезно, конечно. Но это ведь не JavaScript? Отсебятину впилили?
Вообще-то, если ты не знал, так и появляются нововведения в языке - сначала кто-то в своем парсере/компиляторе/движке вводит новые операторы, синтаксические конструкции и т.п., затем это либо не становится, либо всё-таки становится новым общепринятым стандартом.
самый что ни есть javascript: https://tc39.es/proposal-optional-chaining/но я бы запретил это делать если в конце вызов метода, типа db?.user?.name?.length(), уж больно стремно не углядеть: user?.group?.permissions?.assert() и т.д.
использую огнелис. брат жив. ну не считая периодического зависания адресной строки
Хм... Ещё пока жив курилка? Звучит как-то пессимистически.
Держи в курсе.
Когда сдохнет, сообщу.
У меня адресная строка не зависает, но периодически лагает интерфейс при скролле. И вообще интерфейс лагает, особенно под нагрузкой. В прошлой версии ещё интерфейс мог зависнуть (переключение вкладок не работало), в нынешней пока только скролл отваливается на сайтах, может проблема сайтов не знаю. И видео на некоторых сайтах не воспроизводится, с ютубом проблем нет. Vp9 и там и там, не знаю в чём дело. Лаги интереса удручают конечно, в хромиуме в таких же условиях их не наблюдаю.
Пора переходить на хром. Сколько можно мучиться?!
Или сдомазо?
Хуже - вендузоед.
Под вендой Опера намного лучше Хрома. Вот прямо намного, раз в 10 лучше. Кроме того одного раза, когда они обновили сертификаты и не выкатили новые версии браузера, из-за чего прокся отвалилась на неделю или больше. И другого раза, когда она не подружилась и видеодрайвером. Но такое раз в год случается.
Докладываю - у нас хромог - как надо хромог. Адресная строка - не зависает.
У вас новый йожыг хромой есть, не трожьте нашего хромога.
Не троньте ежа.
Это песня такая занятная есть.
> У вас новый йожыг хромой есть, не трожьте нашего хромога.у них волшебная фича есть:
Registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EdgeUpdate
Key value name: DoNotUpdateToEdgeWithChromium REG_DWORD 1 = block update
(в следующей версии - "PleasePleasePleaseDoNotUpdate" ;-)
не. Це ленуксоид.
wayland?
Где Wayland?
Хром хорош, но еще лучше тред о нем на хакерньюз https://news.ycombinator.com/item?id=22236106
Зачётная соплежуйка! :-)
> tracks Chrome installation ID - 2 days agoВот это они там на комбинаторе узнали...
Скачал вот Оперу 12.16 - работает! В основном ваще без особых косяков, за исключением гуглосайтов ;) Ну и с шифрованием/протоколами не очень.
Хм... Гуглосайты? Это больше чем полинтернета? Нда... хреновенько.
Чувак! Ну ты же сам себе поставил диагноз))
Тебе чувак! Вот и выкручивайся!
Хоть на ёпере-12, хоть на лисе-3. :-)
С чего это? Это цифровая археология)) а главное в другом.
Понятный пень, что в другом. Главное, чтоб работал. И открывал все страницы. А не кукарекал.
Опера-то работает, а интернеты-то в ней работают? А то у меня и IE 1.0 работает. В смысле запускается.
Ютуб вывесил баннер с уведомлением,что скоро прекратит поддержку вашего устаревшего браузера.
Баннер скрывается фильтром youtube.com##div[id="alerts"]
Люди добрые,если у кого есть аккаунт на Руборде зайдите в тему "Браузер Хамелеон" и перепосте там эту новость(Там Валера страдает,эту фигню убрать хочет).
"Валера, прозрей!!!11"
и смени наконец браузер на нормальный. Хром.
Потому что баннер вывесили не просто так, и скоро он действительно только хромым и будет открываться.
> youtube.com##div[id="alerts"]Можно упростить youtube.com###alerts
Еще youtube.com###old-browser-alert для старой темы (расширение YouTube Classic). Вообще, для ютуба у меня уже гора ручных фильтров pastebin.com/raw/kEnT1zuU
Всякое непотребство гугл регулярное вводит.
Большое спасибо,за фильтры.
Кстати,в Гоанне можно и юзерагент поменять,если Ютуб окончательно зарежет старый интерфейс(Правда тогда у Ютуба будет новый интерфейс).
комменты-то за што?Ну и давить любые алерты, по-моему, так себе идея. Может он тебе что хорошее хотел сказать, важное.
стыжжено откуда-то с просторов редита:
!This is for the end cards
www.youtube.com##.ytp-cards-button!This is for the new "next video suggestion"
www.youtube.com##.ytp-ce-element!For the new "teasers"
www.youtube.com##.ytp-cards-teaser!For the new "channel suggestions"
www.youtube.com##.iv-promo!For the new "view more info" button in fullscreen
##.ytp-button.ytp-fullerscreen-edu-button
##.ytp-fullerscreen-edu-chevron
##.ytp-fullerscreen-edu-text
##.ytp-button.ytp-fullerscreen-edu-buttonостальное я полагаю не слишком важным и назойливым.
> Запрещён вывод всплывающих окон (вызов метода window.open()) и отправка синхронных запросов XMLHttpRequest в обработчиках событий закрытия или скрытия страницы (unload, beforeunload, pagehide и visibilitychange);Ребят, я вот чего не пойму. Допустим они запретили вызывать window.open() внутри обработчика скрытия страницы, но блин - обработчик скрытия страницы легко может оставить маркер в DOM, а другой обработчик настроенный на обнаружение этого маркера уже вызовет window.open()
В чем смысл этих претубераций, если они ни отчего не защищают, а лишь усложняют разработчику жизнь?
> В чем смысл этих претубераций, если они ни отчего не защищают, а лишь усложняют разработчику
> жизнь?в том что поломается куча сайтов - но не гугль.
Сайты отличные от гугля - должны сдохнуть.
Поэтому и дальше будут сперва придумывать api - а потом, когда он станет массовым - извращенный набор нигде не описанных "тут играем, там рыбу заворачивали".Кстати, приятно отметить, что на гитхабе ОПЯТЬ не работает в palemoon выбор ветки.
ЗАЧЕМ, как вы думаете, эти ^даки без конца переделывают простую и банальную - реализуемую в plain html без даже м-цкого css - выбиралку ветки, то есть выпадающий (нахрен не нужно) список, по сути - html-линков, каждый раз так, что она работает только в самом моднявом браузере? Они по жизни полные м-ки, или все же им кто-то платит?
>Кстати, приятно отметить, что на гитхабе ОПЯТЬ не работает в palemoon выбор ветки.А у меня работает. Ты не ту кнопку наверно жмешь. Жми крсную на пузе.
Пользователи palemoon сами выбрали путь боли.
пользователи не-гугля, ты хотел сказать?
Все сами выбирают свой путь. Даже пользователи нью-лисы.
Пользователи palemoon сознательно выбрали путь боли в голове вместо боли в попе.
Где лучше, в голове или заднице, ещё вопрос.
Ну два варианта:
1. Microsoft
2. они действительно не понимают что делают
> Ну два варианта:
> 1. Microsoftв первый раз они сломали еще до прихода к успеху - причем, когда их в ответ на заявы "мы поддерживаем только три единственноверных браузера" ткнули мордочками в лужу - в списке "поддерживаемых" был, ты будешь смеяться, MSIE - в котором, разумеется, тоже сломали - они "починили" - выпилив IE из списка поддерживаемых.
Не думаю, что microsoft спонсировала этот парад идиотизма. Долбаный выпадающий список! С единственной функцией - выбрать одну строчку и перерисовать, по этому поводу, всю страницу, а не ее часть. То есть ему вообще незачем быть модным-аяксовым.
P.S. в 28.последнем pm - починено, в очередной раз, но спасибо за это, сам понимаешь, кому.
Когда они уже манифест v3 введут в исполнение? Не слышно по этому поводу ничего?
Давно пора.
Вот что говорят: https://developer.chrome.com/extensions/migrating_to_manifes...
Вроде починили vulkan, по крайней мере его включение уже не вызывает дикие глюки.
Спасибо Гуглу, что наконец-то прибили все бесплатные прокси для обхода блокировок.
Через пару месяцев буит Хром и Мозилла 100.
А кардинальных изменений 0.
Думаю, после версии 255 сменят систему нумерации
32767 :)
Неправильно.
почему в портативной версии слетают все данные профайла, когда запускаешь в другой версии ОС? и как с этим бороться? до 40й версии такой проблемы не было
Ничего себе, сколько изменений. А что из этого есть в Лисе? И что из этого вообще НУЖНО (хоть в лисе, хоть в лесу)?
Самое важное забыли - 80-ке наконец-то полностью выкинут устаревший Shadow DOM v0, из-за применения которого на Youtube были проблемы у ФФ. Теперь Гуглу хочешь не хочешь придется обновить туб на актуальную версию.
> Теперь при помощи операции "?." можно обратиться к значению "db?.user?.name?.length" без предварительных проверокАга, ага. Теперь это будет выглядеть так:
if (chromeversion >= 80)
if (db?.user?.name?.length)
do-smth;
else
if (db && db.user && db.user.name && db.user.name.length)
do-smth;
это только у тебя оно так.У веб -макаки:
if (chromeversion <= 888)
display_banner_requiring_upgrade;if (db?.user?.name?.length)
crash_now;
if (chromeversion <= 888)
display_banner_requiring_upgrade;if (db?.user?.name?.length);
crash_now;
Будет также как и раньше if (db.user.name.length)
Люди ленивы и склонны к ошибкам
"?." нужный, но не полезный функционал. Без "?" было бы лучше
У меня по каждому релизу браузеров возникают одинаковые стандартные вопросы (ответы на которые каждый раз могут быть и разными). Например- в этот раз могут ли возникнуть какие-либо несовместимости чего-либо с этой версией браузера? (И вот у меня в этот раз это и произошло- "мозги"-то в этом релизе там существенно поменялись).
Например те уязвимости, которые в этом релизе были устранены- могли ли их ранее заделывать антивирусы и смогут ли они заделывать их дальше там, где он (и другие браузеры на базе него) пока не обновилось? (И зависит ли риск проявлений тех уязвимостей от того, под какой ОС (и под каким смартфоном) браузер используется?)
И изменилась ли "памятижручесть" "Хрома" в этот раз? (Может очередные его усовершенствования как-то облегчат это? Или период роста его прожорливости еще не прошел?)
И гораздо большая ресурсная проблема, чем просто потребление памяти- это та общелинуксовая проблема, что некоторые сайты (прежде всего содержащие анимацию, при воспроизведении видео в браузере (а то и не воспроизводя и того и того)) очень нагружают процессор (особенно если в нем меньше четырех ядер). Это как известно связано с гораздо худшей, чем в винде поддержкой аппаратнаго ускорения. Но в этот раз хоть как-то проблема эта там облегчена? (И а вот под убунтами "9.04", "10.04" (когда там еще "Firefox-2" был) проблемы-то такой там не было!) Для и изследований и багрепортов этой проблемы рекомендую один из наиболее "линуксонеперевариваемых" сайтов- https://www.e1.ru/news/spool/news_id-52282171.htmlИ далее- мои багрепорты из того, что у меня поломал этот "80"й релиз: мне все пока доступно испытать только на убунте "18.04.3" и на винде "10" (а кто и на смартфонах и на других ОС это все испытывал?) Например у меня поломался аддон для скачивания музыки и видео с сайтов (аддон "Savefromnet". В винде я его переустановил и все заработало. А вот в убунте во "Вконтакте" перестало скачиваться, на Youtube- скачивает, в других местах- когда как). Заодно на сайте tunein.com (и во Вконтакте) перестали воспроизводиться радио (да и музыка с видео во "Вконтакте" многие перестали под ним теперь воспроизводиться (выдает, что "Не удалось воспроизвести видео" и "При загрузке аудиозаписи произошла ошибка. Попробуйте обновить страницу")). Далее я зашел на сайт vklader.com и вместо него открывается страница-уведомление о подозрительной активности с моего IP адреса (и с той очень известной графической каптчей, что "гидранты" (и "светофоры", "пешеходные переходы", "автомобили") и что "докажите, что Вы не робот". Доказал. Но после этого переход на нужную страницу потом не происходит и все. Ладно, тогда захожу туда же через другие браузеры- и та же каптча там тоже будет и после успешнаго ея прохождения автоматический переход на нужную страницу там уже происходит (перед той каптчей вылетает страница с уведомлением, что Traffic anomaly has been detected
We're receiving a lot of suspicious requests from your network.
Probably there is an ongoing attack targeting the website you are trying to visit.
Please allow us to identify you as a legitimate user:enter the symbols from the picture to the form below ).
Откатывать назад сей "80"й я не буду- вместо этого я все буду сравнивать браузером "Опера"- туда те обновления пока еще не пришли (на следующий день какие-то другие пришли (и ничего не поломали)- движок его идентифицируется по-прежнему как "Chrome/79.0.3945.130 Safari/537.36" (и что теперь он "Opera 66.0.3515.72").
И еще на базе "Хрома" существует целый ряд и других браузеров- вот встроенный браузер есть и в одном из офисных пакетов ("FreeOffice" кажется), даже "Ccleaner Browser" виндовый существует (который малозаметно почти без ведома пользователя вместе с тем "Ccleaner" и скачивается и устанавливается и прописывает себя в системе браузером по умолчанию (и в автозагрузке многое от себя- тоже),- а для чего?)) Internet explorer тоже на движке "Хрома" с недавнего времени- когда и в него эти обновления с "80"го придут?
И еще один баг- на e1.ru не удается перейти на другие страницы (ссылку нажмешь- перехода может и не произойти). На news.ngs.ru либо то же самое, либо если где и удаются, то они будут полностью пустыми (ну и с процессором те же проблемы там тоже периодически сильно обостряются). Кто что еще мог выявить помимо меня? (Ведь я мало на чем релиз сей тестировал). И чтобы эти баги устранить- это на тех сайтах надо будет что-то переделывать или это будет достаточно только в браузере? (Или в идеальном случае и там и там? И а заранее о таких проблемах там что ли не знали, прежде чем стабильный релиз его такой выпускать? (Или и знали, но чтобы не нарушить график- все равно его выпустили? (И что еще народ там с него набагрепортил?) И наверняка корректирующие его релизы еще не раз потом будут (такое всегда бывает)- интересно, а что там потом пофиксят (и в нем же тоже встроенная телеметрия есть (а не только в винде "10")- она когда я с проблемами там с какими сталкиваюсь- она в нем это может автоматически и выявлять и отправлять?)
И еще появились там баги и на сервисе WhatsApp web- теперь в таком браузере не воспроизводятся (и не скачиваются) никакие аудио, видео и изображения (изображения есть только очень размытые в виде предпросмотра (с указанием их размера (а вместо видео- "черный квадрат"). Также не отображаются и аватарки на контактах)).
И еще появилась проблема и с "Фейсбуком"- теперь только белый экран с несколькими ссылками на нем и все (и заодно многие из которых и не работают (войти в него можно, а вот ссылки "выйти" там нет (и никаких изображений и тем более видео- тоже нет))).
И еще в винде "10" не редко бывает ошибка обновления (код ее сейчас не помню). Как ее устранить? (Я знаю только про один вариант- скачать файл для онлайн-установки и устанавливать с него- далее он будет натягивать из сети остальное и тогда нормально все установит. Но где взять полновесный установочный файл и для оффлайн-установок? (Они (виндовые) на сайте Гугла" полуспрятанные" почему-то- ссылки на них (и на APK) так просто не найдешь- где их искать? (И в какой из системных папок он же (и APK) потом остается после использования того онлайн-установщика?))
> могли ли уязвимости ранее заделывать антивирусы и смогут ли они заделывать их дальше там, где он (и другие браузеры на базе него) пока не обновилось?Можно сказать, что нет.
> И зависит ли риск проявлений тех уязвимостей от того, под какой ОС (и под каким смартфоном) браузер используется?
Естественно. На более редкоземельной платформе риск меньше (потому что она мало кому сдалась).
На мобильных ОС тоже, ибо там сильнее изоляция приложений и меньше наворочено по сравнению с десктопами.
Ну то что они сделали с Cookie уже поломало авторизацию на многих сайтах.
Ну так для того же и делали!Смотрите - на наших сайтах - ничего не поломалось!
А неправильные сайты - должны, разумеется, умереть.
А ютуп не ваш?
Топик давний, но держу в курсе) https://bugs.chromium.org/p/chromium/issues/detail?id=104998...
Кто-нибудь знает как в Яндекс браузере делать закладки без синхронизации с сервером?
Как говнохром жрал много памяти, так и жрет. Хром давно медленный браузер
Хм... А кто же быстрый??? Про фурифокса даже не упоминать!!!
Пейлмун же.
Легаси-браузеры без многопроцессности не могут быть быстрые априори!
Мы не говорим о маленькой текстовой страничке. На всем остальном они захлёбываются.
Судя по списку изменений, это версия может называться 79.0.1 ну, может, с очень большой натяжкой 79.1 но никак не 80.0
Декорации окон сломали к чертям :(https://bugs.chromium.org/p/chromium/issues/detail?id=1049979
Хром - лучший на сегодняшний день браузер.
На так называемом табло можно делать заклади в яндекс-браузере.)
память "раздувается" при старте (до 1ГБ+) если установить HttpsEverywhere например:
Ungoogled-Chromium-79.0.3945.130-Win32 - ещё работал нормально
Ungoogled-Chromium-80.0.3987.87-Win32 - уже "отжирает"
Ungoogled-Chromium-81.0.4044.92-Win32 - тоже "отжирает"
что делать?