All streams
Search
Write a publication
Pull to refresh
482
0
Send message
О, круто, Вы изобрели rebase.exe. Ну что ж, осталось только попробовать и убедиться в том, что виндовый ASRL делает этот самый rebase в памяти при каждой загрузке.
И что не так с резервированием 8Гб памяти в 2-терабайтном адресном пространстве?

Кстати, Вы бы проверили свое утверждение о том, что ASLR не пытается расположить все библиотеки рядом с друг другом прежде чем выступать с заявлениями о рукожопости, ага.
Винда, в отличие от рукожопого линукса, не оверкоммитит, соответственно вопрос совершенно справедливый. Если кто-то закоммитит (MEM_COMMIT) полгига памяти, то даже если он не будет ее использовать — никто другой тоже не сможет (ну кроме системного кеша).
Это тот самый Дмитрий Быков, который «Какая в жопу обезьяна»? В таком случае мнение ИДИОТА, ниасилившего даже школьный курс биологии и не обладающего даже зайчатками критического мышления, зато умеющего правильно расставлять тире лично меня СОВЕРШЕННО не интересует.

Потому как, опять-таки говорю лично за себя, но описки, небольшое количество орфографических ошибок и практически неограниченное — пунктуационных ни в коем случае не заставят меня стереть письмо не дочитывая. А вот попытки блеснуть эрудицией то и дело вворачивая в разговор переписку Энгельса с этим… как его дьявола… Каутским при полнейшей и непроходимой тупости и принципиальной неспособности понять даже базовые вещи если требуется минимальная способность к понимаю информации, а не просто к механическому запоминанию, вот это запросто приведет к настройке фильтров на удаление писем такого умника еще на почтовом сервере.
Боже, какой идиотизм (и Ваш комментарий и луркомудрость).

Ну и ссылка в тему Wikipedia — Антивирус. О БОЖЕ, он не дает 100% гарантии, работает с лагом в несколько недель, есть малварь, которая его активно обходит и даже "выключает", оно нередко приводит к противным глюкам в системе. Все, становлюсь беспозвоночным — у них этой гадости нет.
NTFS никогда не была и не могла быть совместимой с HPFS (на уровне on-disk организации — драйвер ntfs.sys В ПРИНЦИПЕ мог бы обеспечивать поддержку двух разных ФС, но это было бы некрасиво с точки зрения дизайна). По своей структуре HPFS — это что-то вроде «переходного звена» между UFS/FFS и, собственно, NTFS. Повторюсь, они НИКОГДА не были бинарно-совместмыми (ну посмотрите хотя бы на on-disk структуры HPFS и попробуйте найти хотя бы что-то общее с NTFS). Поддерку HPFS в NT до 3.51 включительно обеспечивал (сюрприз!!!) IFS драйвер pinball.sys, который начиная с NT4 перестал включаться в поставку системы.
У Вас бешенство. Вы появляетесь практически в каждом посте, хотя бы отдаленно касающемся винды, и в большинстве случаев начинаете нести чушь. Например, использование более двух колец защиты было необосновано потому, что и OS/2 и NT претендовали на серверный рынок и enterprise рабочие станции (на десктопе NT обосновалась более чем через 10 лет), а как там дела обстояли с серверным рынком x86 в 80-е? Напоминаю, NT (OS/2 NT) получила свое название от N10 (New Technology — это уже более позднее и чисто маркетинговое изобретение) — одной из многих провалившихся попыток Intel завоевать серверный рынок с VLIW процессорами. Более того, в отличие от того же линукса, в требованиях к NT *изначально* была кроссплатформенность и совместимость с OS/2 и POSIX (совместимости с Windows в начальных требованиях не было — представьте себе, что бы случилось, если бы OS/2 и POSIX были болтами прибиты к ядру, как это происходит в других ОС).

Далее, HPFS — дальний родственник, но СОВЕРШЕННО не то же самое, что NTFS (в девичестве, ага). В принципе можно считать что HPFS была прототипом на котором тестировались (командой из Microsoft, кстати) и обкатывались идеи, позже нашедшие отражение в NTFS.

Также не забываем, что эта самая OS/2 NT была ГОРАЗДО больше похожа на VMS, чем на собственно OS/2 1.0 (поддержка OS/2 осуществлялась в виде юзермод подсистемы — наравне с POSIX и, позже, Windows) что неудивительно ибо основная разработка осуществлялась командой Катлера, который 15 лет провел «заведуя» этой самой VMS.
Ну и зачем сразу обижаться? Детализация доходов, причем из разных подразделений, доступна только высшему менджменту. Нам, простым смертным, остается довольствоваться только ежегодными/квартальными отчетами, которые ну вообще ничего не говорят ни про доходность Azure ни про доходность WinPhone — соответственно любой, кто с уверенным видом говорит об этой самой доходности либо является топ менеджером МС (а их русскоязычных не так уж и много и совсем мало русскоязычных, которые покинули МС в последнее время) либо попросту… хм… распространяет недостоверную информацию (опять же, она может оказаться и правдивой, но с таким же успехом — может и нет).

В целом с некоторой натяжкой меня можно назвать и фанбоем, да. Нюанс только в том, что под фанбоем обычно подразумевается неинформированный человек, который фанатеет «просто патамушта». Я же информацией обладаю (хотя и не полной — как и все мы) — поэтому даже не знаю вписываюсь ли в это самое классическое определение фанбоя.
Я не сомневаюсь, что у него (Филипа Су) были причины покинуть МС. Точно так же я не сомневаюсь, что у Виттакера были причины покинуть Гугл и помимо бабла: после определенного уровня доходов бабло вообще становится не особо существенным — финансовый вопрос просто отходит в сторону. Ну сможешь ты купить не 10000 sq ft, а 15000 и не в каком-нибудь Саммамише, а на Мерсере и чего? Стоит ли ради этого жертвовать работой которую действительно любишь, ради той которую будешь ненавидеть? Вот и я о том же — вряд ли Виттакер врет о своем восприятии ситуации — это ИМЕННО ТЕ причины, по которым он перешел, а бабло — бабла у него уже и так хватает.
Результаты гугла в целом примерно такие же. И я привел их не в качестве «доказательства», а как ответ на Ваш линк про низкоуровневого человека ушедшего из МС в ФБ и именно в виде «погадаем»: люди приходят и уходят, причем ПИШУТ больше именно про уход из гугла или эппла (независимо от причин).

Синофскификация мало влияет на тех самых низкоуровневых IC. У высокоуровневых — да — батхерт, но ведь Вы сами говорили что «больше [доверяете] мнению людей которые образно выражаясь проводят время в окопах (рядовые сотрудники), чем таких как Виттакер».
Вы подозрительно малоосведомлены для человека, который заявляет, что знает об МС «ну вообще все патамушта работал там 10+ лет».

Я еще в прошлом году встречал информацию, что Xbox вышел на lifetime profit (найти не могу, но раз уж Вы первый выступили с заявлением — Вам и доказывать) — и это только по деньгам, не считая всяких гудвилов, блокирования доступа конкурентов в гостиную и пр…

Bing — это на самом деле не Bing, а OSD и там очень большие капитальные вложения в инфраструктуру. На опять же, даже если не рассматривать чисто денежный вопрос (как вариант, подумайте, стоит ли совсем разогнать LCA или, там, маркетинг — от них прямого дохода не дождешься, а расходов полно), вот на приставках, телефонах и виндовсах есть интегрированный поиск — стоит ли ставить туда гугл?

Azure — это Server & Tools (в профите и одном из самых высоких по сравнению с другими — выше только WWL и MBD). Откуда у Вас финансовые показатели, собственно Azure?

Windows Phone — это Entertainment & Devices (тоже в профите причем показывает двух/трехзначные проценты роста за последние годы). Откуда у Вас данные непосредственно по Windows Phone?
Погадаем на количестве результатов поиска:
www.bing.com/search?q=why+i+left+microsoft
www.bing.com/search?q=why+i+left+google+-whittaker
www.bing.com/search?q=why+i+left+apple

А вообще было бы интересно узнать с какой позиции Вы покинули МС, чтобы так смело разбрасываться заявлениями: «я знаю что происходит в МС на глобальном уровне», «все ненавидят синофскификацию», «Виттакер пришел исключительно за баблом» и пр… Нет, я не сомневаюсь, что у Вас были причины покинуть МС и Вы искренне удивляетесь почему другие этих причин либо не видят либо они им не настолько важны, но не стоит все таки приписывать себе бОльшую осведомленность, чем (скорее всего) есть на самом деле.
На всякий случай перепишу для повышения читаемости:
#include <algorithm>

int arr[] = {1, 2, 3};

void
test()
{
	std::for_each(std::begin(arr), std::end(arr), [](int &elem)
	{
		elem++;
	});
}


Компилируется в

PUBLIC	?test@@YAXXZ					; test
; Function compile flags: /Ogtpy
; File c:\temp\test\test.cpp
;	COMDAT ?test@@YAXXZ
_TEXT	SEGMENT
?test@@YAXXZ PROC					; test, COMDAT

; 8    : 	std::for_each(std::begin(arr), std::end(arr), [](int &elem)
; 9    : 	{
; 10   : 		elem++;
; 11   : 	});

  00000	48 8d 05 00 00
	00 00		 lea	 rax, OFFSET FLAT:?arr@@3PAHA ; arr
  00007	48 8d 0d 0c 00
	00 00		 lea	 rcx, OFFSET FLAT:?arr@@3PAHA+12
  0000e	66 90		 npad	 2
$LL15@test:
  00010	ff 00		 inc	 DWORD PTR [rax]
  00012	48 83 c0 04	 add	 rax, 4
  00016	48 3b c1	 cmp	 rax, rcx
  00019	75 f5		 jne	 SHORT $LL15@test

; 12   : }

  0001b	f3 c3		 fatret	 0
?test@@YAXXZ ENDP					; test


А

#include <algorithm>

int arr[] = {1, 2, 3};

void
test(int adder)
{
	// Capture adder
	auto f = [=](int &elem)
	{
		elem += adder;
	};

	// Modify adder
	adder = 0;

	std::for_each(std::begin(arr), std::end(arr), f);
}


в

PUBLIC	?test@@YAXH@Z					; test
; Function compile flags: /Ogtpy
; File c:\temp\test\test.cpp
;	COMDAT ?test@@YAXH@Z
_TEXT	SEGMENT
adder$ = 8
?test@@YAXH@Z PROC					; test, COMDAT

; 8    : 	// Capture adder
; 9    : 	auto f = [=](int &elem)
; 10   : 	{
; 11   : 		elem += adder;
; 12   : 	};
; 13   : 
; 14   : 	// Modify adder
; 15   : 	adder = 0;
; 16   : 
; 17   : 	std::for_each(std::begin(arr), std::end(arr), f);

  00000	48 8d 05 00 00
	00 00		 lea	 rax, OFFSET FLAT:?arr@@3PAHA ; arr
  00007	48 8d 15 0c 00
	00 00		 lea	 rdx, OFFSET FLAT:?arr@@3PAHA+12
  0000e	66 90		 npad	 2
$LL17@test:
  00010	01 08		 add	 DWORD PTR [rax], ecx
  00012	48 83 c0 04	 add	 rax, 4
  00016	48 3b c2	 cmp	 rax, rdx
  00019	75 f5		 jne	 SHORT $LL17@test

; 18   : }

  0001b	f3 c3		 fatret	 0
?test@@YAXH@Z ENDP					; test


Хех, нужно source вместо code. Ну да фиг с ним — идея понятна.
Да ни фига не быстрее — все зависит от реализации.
Вот сделал тестовую функцию (с сайдэффектами, чтоб компилятор ее не выбросил):
#include int arr[] = {1, 2, 3};

void
test()
{
std::for_each(std::begin(arr), std::end(arr), [](int &elem)
{
elem++;
});
}

cl /FAcs /c /O2 test.cpp

и получаем В ТОЧНОСТИ такой же цикл, как и при "ручном" for:
PUBLIC ?test@@YAXXZ ; test
; Function compile flags: /Ogtpy
; File c:\temp\test\test.cpp
; COMDAT ?test@@YAXXZ
_TEXT SEGMENT
?test@@YAXXZ PROC ; test, COMDAT

; 8 : std::for_each(std::begin(arr), std::end(arr), [](int &elem)
; 9 : {
; 10 : elem++;
; 11 : });

00000 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?arr@@3PAHA ; arr
00007 48 8d 0d 0c 00
00 00 lea rcx, OFFSET FLAT:?arr@@3PAHA+12
0000e 66 90 npad 2
$LL15@test:
00010 ff 00 inc DWORD PTR [rax]
00012 48 83 c0 04 add rax, 4
00016 48 3b c1 cmp rax, rcx
00019 75 f5 jne SHORT $LL15@test

; 12 : }

0001b f3 c3 fatret 0
?test@@YAXXZ ENDP ; test


Более того:
#include int arr[] = {1, 2, 3};

void
test(int adder)
{
// Capture adder
auto f = [=](int &elem)
{
elem += adder;
};

// Modify adder
adder = 0;

std::for_each(std::begin(arr), std::end(arr), f);
}


И получаем, что бы Вы думали
PUBLIC ?test@@YAXH@Z ; test
; Function compile flags: /Ogtpy
; File c:\temp\test\test.cpp
; COMDAT ?test@@YAXH@Z
_TEXT SEGMENT
adder$ = 8
?test@@YAXH@Z PROC ; test, COMDAT

; 8 : // Capture adder
; 9 : auto f = [=](int &elem)
; 10 : {
; 11 : elem += adder;
; 12 : };
; 13 :
; 14 : // Modify adder
; 15 : adder = 0;
; 16 :
; 17 : std::for_each(std::begin(arr), std::end(arr), f);

00000 48 8d 05 00 00
00 00 lea rax, OFFSET FLAT:?arr@@3PAHA ; arr
00007 48 8d 15 0c 00
00 00 lea rdx, OFFSET FLAT:?arr@@3PAHA+12
0000e 66 90 npad 2
$LL17@test:
00010 01 08 add DWORD PTR [rax], ecx
00012 48 83 c0 04 add rax, 4
00016 48 3b c2 cmp rax, rdx
00019 75 f5 jne SHORT $LL17@test

; 18 : }

0001b f3 c3 fatret 0
?test@@YAXH@Z ENDP ; test


Серьезно, нет никаких причин, по которым декларативный стиль (с обобщенными алгоритмами и передаваемыми им фунаргами) должен быть медленнее императивного. Но задумайтесь сколько усилий потребуется Вам для императивного написания (а позже и понимания написаного) какого нибудь parallel_for_each или там task<>().then().then().then();
Подробнее у Руссиновича/Соломона/Ионеску. У них этому целая глава посвящена. Если коротко, то когда кто-то пытается считать данные из файла, драйвер файловой системы обращается к кеш-менеджеру за данными при помощи CcCopyRead сотоварищи, кеш-менеджер пытается смепить нужный участок в один из VACB слотов (стоит подчеркнуть, что они не являются, собственно, кешем — только «рабочая область») и пытается скопировать память в запрошенный буфер. Если данные еще не закешированы, то происходит page fault и memory manager выполняет pagein — чтение нужной страницы с диска, если же данные уже находились в кеше (standby/modified списке), то нужные страницы уже будут в памяти и при будут непосредственно использованы при меппинге в VACB.

Вот такая диаграммка отсюда


Или есть подобная картинка на странице 17 здесь
Если памяти заведомо достаточно, то можно и отключить. Хотя в подавляющем большинстве случаев Вы этим ничего не выиграете (но и не проиграете).
Файловый кеш, ReadyBoost и SuperFetch — совершенно разные технологии. Файловый кеш хранит в оперативной памяти копию того, что уже было когда то запрошено с диска. ReadtBoost хранит копии того, что было запрошено с жесткого диска на флешках. SuperFetch использует время простоя для того, чтобы префетчить (заранее прочитать области с диска в файловый кеш) места с диска, которые исторически использовались больше всего.

Всем трем совершенно плевать на наличие pagefile-а.
> Hyper-V на голом железе, в нем уже сама ОСь

Вы не поверите, Hyper-V именно так и работает. Это гипервизор первого типа.
На тачскрине: перемещение по истории либо фликами вправо/влево, либо из аппбара, который вызывается так же как и во всех остальных местах: «вытаскиванием» его из-за верхнего или нижнего края экрана. Там же и адресная строка.

Мышкой аппбар вызывается RMB-кликом. Там опять таки и история и адресная строка

Information

Rating
Does not participate
Registered
Activity