Сначала создает структуру на стеке, потом копирует ее в массив.
new User(1, 2)
, а потом она записывается в массив.Можно ли так сделать?
users.Initialize()
. Он вызовет стандартный конструктор (без параметров) для всех элементов, а потом вручную выставить значения в цикле А могул ли быть, А100000000000000h, то есть начаться с А
Каким образом достижимость объектов определяется?
Но на стеке лежат числа. могут быть как числами, так и адресами, как и числами?
Тогда итог, что языки с сборщиком мусора, под в 2 раза медленнее должны быть.(помимо сборки)
Теперь где-то, сборщик мусора, начинает переносить arr в другое место.
Экспортированная функция работает в 4 раза медленнее.
ВОПРОС как сделать функцию sum в с++ что бы она работала так же быстро как и sum в c# коде? Как ее заинлайнить
К примеру, если хочу c# библиотеку сделать, то просто добавили ссылку и забыл о всем. А когда добавляю так же ссылку на dll от с++ проекта, то ноль реакции.
Кстати еще вопрос, как библиотеку с++ подключать к проекту, почему DllImport не находит, если указать ссылку на проект,
Как Jit Компиляторы обнаружат недостижимой код и лишние проверки?
о тогда ошибки в памяти вызовут ошибку на хосте, а хакер дак и вообще может через эмулятор взломать внешнею систему.
ли Космические Лучи, в Ram попали, что тогда будет?
Когда эмулятор собирает и компилирует код jit, то как он этот код в машинных инструкциях составляет.
надо к примеру Перед выполнением каждой инструкции проверять наличие прерывания
Или же есть несколько блоков, где линейно выполняется весь блок, а последняя инструкция прыгнет в другой блок.
к примеру для вот такого примера графа, сколько базовых блоков можно построить?
0-1-2-3
, 4-5-6
, 7-8-1-2-3
, 9-10
, 11-12-13
, 14-15-16-2-3
, 17
, всего 7 блоков.0-1-2-3
, 4-5-6
, 7-8
, 1-2-3
, 9-10
, 11-12-13
, 14-15-16
, 2-3
, 17
. Да, фрагмент 2-3
оттранслирован три раза: сам по себе и в составе других блоков. Почему не переписать вместо этого
add ebx,dword ptr [rbp+ECX*4+10h]
add ebx,dword ptr [rbp+rcx*4+10h]
, но для этого счётчик цикла должен был бы быть 64-битным, а он, как мы видим, 32-битный (int i
). Т.е. ответ на вопрос "для чего это": для беззнакового расширения 32-битного счётчика цикла в регистр, который можно использовать для доступа к памяти.i
не выходит из диапазона 0..9, так что разницы между ecx и rcx нет и не может быть. Возможно я что-то упускаю и у компилятора другое мнение на этот счёт, но может быть он просто туповат и не имеет кода который бы мог использовать эту возможность оптимизации, а может такая оптимизация и есть, но она не была включена во время генерации этого кода. Background="Transparent"
(прозрачный цвет считается за фон, но визуально ничего не меняет), то всё будет работать.public class SettingViewHost
{
public IReadOnlyCollection<SettingView>? Views { get; init; }
}
public class SettingView
{
public string? Name { get; init; }
public IReadOnlyCollection<ItemData>? Options { get; init; }
}
public class ItemData
{
public string? Name { get; init; }
public int GridRow { get; init; }
public int GridColumn { get; init; }
}
public class BooleanItemData : ItemData // TODO implement INotifyPropertyChanged and raise PropertyChanged in Value setter
{
public bool Value { get; set; }
}
public class StringItemData : ItemData // TODO implement INotifyPropertyChanged and raise PropertyChanged in Value setter
{
public string Value { get; set; } = string.Empty;
}
<DataTemplate DataType="{x:Type local:StringItemData}">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Name, Mode=OneTime}" />
<TextBox Text="{Binding Value}" />
</StackPanel>
</DataTemplate>
<DataTemplate DataType="{x:Type local:BooleanItemData}">
<CheckBox Content="{Binding Name, Mode=OneTime}" IsChecked="{Binding Value}" />
</DataTemplate>
<DataTemplate DataType="{x:Type local:SettingView}">
<ItemsControl ItemsSource="{Binding Options}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid IsItemsHost="True">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="{x:Type ContentPresenter}">
<Setter Property="Grid.Column" Value="{Binding GridColumn, Mode=OneTime}" />
<Setter Property="Grid.Row" Value="{Binding GridRow, Mode=OneTime}" />
<Setter Property="Margin" Value="4" />
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</DataTemplate>
<DataTemplate DataType="{x:Type local:SettingViewHost}">
<StackPanel Orientation="Vertical">
<ComboBox Name="ComboBox" ItemsSource="{Binding Views}">
<ComboBox.ItemTemplate>
<DataTemplate DataType="{x:Type local:SettingView}">
<TextBlock Text="{Binding Name, Mode=OneTime}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<ContentControl Content="{Binding ElementName=ComboBox, Path=SelectedItem}" />
</StackPanel>
</DataTemplate>
Что надо делать.?
Не понимаю, с чего начать.
double[] x, double[]y
Почему это поле не передается через, передается null
CommandParameter="{Binding ElementName=selfUserControl,Path=Points, Mode=OneWay}">, selfUserControl x:Name элемента.
Находил примеры, там везде свойство ItemsSource, но такого свойства нету у Canvas
Почему это поле не передается через, передается null
CommandParameter="{Binding ElementName=selfUserControl,Path=Points, Mode=OneWay}">
a((x-1)mod m,(y-1)mod n) a(x mod m,(y-1)mod n) a((x+1)mod m,(y-1)mod n)
a((x-1)mod m, y mod n) a(x,y) a((x+1)mod m, y mod n)
a((x-1)mod m,(y+1)mod n) a(x mod m,(y+1)mod n) a((x+1)mod m,(y+1)mod n)