Показать сообщение отдельно
Старый 26.09.2006, 08:23   #10
Guest
 
Сообщений: n/a
Цитата:
"То есть оптимизация идет только под процессор? И не важно, как и чем он забит помимо программы?
Как я уже говорил, такую оптимизацию сделать нереально хотя бы потому, что эта задача почти приравнивается к искуственному интеллекту. Такие ходы, как при оптимизации на C++, ни одна автоматическая система не повторит."
Оптимизация зависит от памяти, от проца, и не много от ОС. Там оптимизация зависит какбы от контрольных точек.
Допустим тебе надо перемножить флоаты. Если SSE будет то код будет вместе с этими SSE.
Цитата:
Только если в сторону тормознутости. Не забывай, .NET исполняется Framework'ом, а Framework на чем написан? На C++ или другом полностью компилируемом языке. И как могут его либы быть качественнее C'шных?
А теперь скажи на чем написан твой C++ компилятор
Цитата:
Как уже писал выше, достаточно использовать разные библиотеки. Кстати, такую систему вполне реально реализовать в отрыве от C# для C++.
Ладно можно но сложнее чем для С#
Цитата:
Программа на C# компилируется в байт-код. Даже если он будет у юзера на машине компилироваться в двоичный код, все равно юзеру ты даешь байт-код. А теперь внимание, вопрос:
Что мешает юзеру оказаться хакером, перегнать твой байт-код назад в C# (по ассемблерному коду код на C++ восстановить практически нереально, а по байт-коду код на исходном языке - элементарно) и посмотреть в нем все твои программистские секреты, отключить любую самую хитрую регистрационную систему и защиту от копирования, да и просто найти твои ошибки, наконец?
а ты слашал про Obfuscator'ы?
[quote]Вывод: ты можешь быть прав только в случае, если Майкрософт заставит всех писать только под .NET, и не найдется никого, решившегося реализовать похожие возможности для C++ (для которого они реализуются проще). Надеюсь, что этого не случится.[/qoute]
Ты хоть слышал про Singularity - нет? почитай. Про баг в .net framework, это странно но ещё не одного бага с framework'ом небыло.
Цитата:
Да ладно? В языке без возможности работы с памятью? Мы точно об одном и том же говорим?
Да ты уверен? А про unsafe код не слыхал, или вот это не видел.
using System;
namespace Knott.Benchmark
{
internal unsafe class Program
{
private unsafe static void Main(string[] args) {
DataHolder holder = new DataHolder();
for (int i = 0; i < 128 / 4; i += 4) {
DataStruct str = new DataStruct();
str.Offset = i;
str.Location = holder.Array;
str.Data = i * 10;
}
}
}
public unsafe struct DataHolder
{
public fixed byte Array[128];
}
public struct DataStruct
{
public int Offset;
public unsafe void* Location;
public unsafe int Data {
get { int* dataLocation = (int*)((byte*)Location + Offset); return *dataLocation; }
set { int* dataLocation = (int*)((byte*)Location + Offset); *dataLocation = value; }
}
}
}
Я не уверен что этот код работет правильно - но дело в том что поинтеры там есть.