| 5 Фев, 2010 @ 12:03 MS SUXX! |
|---|
За последние сутки возникло сразу две ситуации, заставивших поматюгаться в адрес винды.
Первое. На сервере (Win 2003) ведется около двух десятков логов, некоторые из которых заполняются с примерно одинаковой скоростью. Как думаете, какова их фрагментация? Ответ - близка к 100%! Т.е. почти каждый кластер - отдельный фрагмент. Все бы было ничего, если бы они лежали себе на диске и не были никому нужны... Но дело в том, что по ним генерятся отчеты. Вообще проблема ведь элементарно решается: нужно просто при увеличении файла выделять ему не 1 кластер, а несколько (в зависимости от его размера, а еще лучше - вести счетчик выделений и учитывать его). Но NTFS почему-то не догадывается до такого простого решения, упрямо продолжая выделять по 1 кластеру. Ладно, думаю, если она такая тупая, то может быть можно ей подсказать? Увы, несколько часов гуглинга по этой теме ничего не дали. Вот вам и суперпродвинутая "файловая система будущего"...
Второе. Сообщили, что на W7 не работает автоапдейт моей игры. Под XP и Вистой работает, а под W7 - нет. Значит придется ставить себе 7-ку, ставить на неё студию и искать причину :( Правда в данном случае, возможно, дело просто в специфических настройках юзера, а на самом деле в типичной конфигурации все работает. Но проблема не в частном случае, а в том, что в последних версиях винды есть общая проблема плохой обратной совместимости. Ведь раньше обычная win-32-программа, созданная, скажем, под 95-ку - работала без проблем в последующих версиях винды, будь то 98-я, 2000-я или XP. Трудно даже придумать причины, по которым она могла бы не работать (не считая несовместимостей на уровне дополнительных API, скажем, известно, что многие игры не работали под Win2K из-за несовместимости DirectX, но со временем ситуация исправилась). Поэтому раньше разработчику не было необходимости ставить кучу систем и вести разработку сразу под всеми. Достаточно было просто запустить программу под той или иной системой - чтобы убедиться, что все работает. Просто формальность. Но с выпуском Висты все изменилось. Программы стали падать и косячить в безобидных ситуациях. Взять например DEP: с ним программа закрывается при возникновении любого исключения. Но ведь исключения как-раз для того и предназначены, чтобы программа могла не падать при возникновении ошибок, а обрабатывать их. Например: юзер пытается открыть файл, который залочен, или нет доступа. Логично выдать сообщение об ошибке и продолжить работу. Но нет, DEP считает иначе: программа закрывается с выдачей абстрактного сообщения, не позволяющего найти причину. Раньше ведь если программа прибивалась из-за ошибки, то вам хотя бы выдавали причину ошибки и адрес места, в котором она возникла. Т.е. даже не имея доступа к компьютеру, на котором возникла ошибка, можно было встать на этот адрес и посмотреть - какая операция вызвала ошибку, подумать о том, как её исправить. Но что делать, если программа просто закрылась? Можно, конечно, найти точку ошибки дихотомией - запуская варианты с отключенными кусками кода, но это очень трудоемко и позволяет лишь очень приблизительно найти место сбоя. То же самое с виртуализацией: когда чтение из одного и того же файла может дать совершенно разные результаты в зависимости от того, как была запущена программа - это ахтунг.
P.S. Слышал, что на Маках все еще хуже, но там пусть плюются те, кто с ними работает :) P.P.S. Про маздайность интерфейса Висты можно тоже много написать, но это уже другая тема. |
|  |