如何将此代码段虚拟化?
<ScrollViewer Grid.Column="1" Name="LogScroller">
<r:NoInheritanceContentControl>
<ListBox Background="Black" ItemsSource="{Binding Path=ActiveLog}" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Background="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Grid.Column="0" Grid.Row="0" Foreground="White">
<TextBlock >Date:</TextBlock>
<TextBlock Text="{Binding Path=LogDate}"/>
</TextBlock>
<TextBlock Grid.Column="1" Grid.Row="0" Foreground="White">
<TextBlock >Severity:</TextBlock>
<TextBlock Text="{Binding Path=Severity}"/>
</TextBlock>
<TextBlock Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="1" Foreground="LightGray" Text="{Binding Path=Message}"></TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Template>
<ControlTemplate>
<StackPanel Background="Black" IsItemsHost="True" >
</StackPanel>
</ControlTemplate>
</ListBox.Template>
</ListBox>
</r:NoInheritanceContentControl>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)我在Windows 7客户操作系统中运行Web服务器,而我想从我的Mac主机操作系统访问它.Web服务器正在运行,我可以从我的客户操作系统访问它,但不能从其主机访问它.
我正在使用Parallels Desktop,我尝试将网络模式从共享,桥接更改为仅限主机,但没有结果.
这是为了发展,所以我只需要它至少可以访问我的主机操作系统.Parallels实际上是否可以实现这一点,还是应该关注其他VM引擎?
我们试图提出一种虚拟化的好方法TreeView,数据并不是真正的问题,因为它非常轻(每个项目大约16个字节),问题是我们可能有数万个,尽管实际上数据只需要160 kb的内存,treeview项目确实使用了更多的内存.我们现在尝试使用3种不同的树进行虚拟化,WPF,Infragistics和Telerik.所有这些都有很大的问题,使它们无法用于我们的应用程序:
WPFTreeView:滚动条显示了一些怪异的行为,周围很多跳跃,变化大小不一致,用鼠标拖动它不能正常工作,滚动(跳来回)
Telerik:项目消失,滚动条也不稳定,项目随机展开崩溃,样式不起作用
Infragistics:项目根本没有虚拟化,每个项目都留在内存中,使虚拟化无用.
我们几个月来一直在努力解决这个问题,但我们还没有找到一个好的解决方案.有没有人成功实现TreeView了超过9000项的虚拟化?如果是这样,你的策略是什么?你使用了第三方控件吗?它100%有效吗?
任何建议都非常感谢.
谢谢.
我们正在做一个涉及从虚拟机管理程序层(即QEMU)监控来宾操作系统(例如Linux)的小项目.我们要监控的一件事是进出客户操作系统的网络流量.是否可以在不修改Guest OS的情况下这样做?
一种方法是拦截在创建套接字时创建的相关系统调用,并在执行指令时从相关寄存器中获取值.但我们不太确定它是否容易,或者它是否是正确的方法.
我正在尝试使用WPF ListBox创建Graph控件.我创建了自己的Canvas,它来自VirtualizingPanel,我自己处理项目的实现和虚拟化.
然后将列表框的项面板设置为我的自定义虚拟化画布.
我遇到的问题发生在以下场景中:
是什么导致了这个"DisconnectedItem"的创建?如果我首先虚拟化B,然后是A,则不会创建此项目.我的理论是,虚拟化ListBox中其他项之前的项会导致子项断开连接.
使用包含数百个节点的图表时问题更加明显,因为当我平移时,我最终会收到数百个断开连接的项目.
以下是画布代码的一部分:
/// <summary>
/// Arranges and virtualizes child element positionned explicitly.
/// </summary>
public class VirtualizingCanvas : VirtualizingPanel
{
(...)
protected override Size MeasureOverride(Size constraint)
{
ItemsControl itemsOwner = ItemsControl.GetItemsOwner(this);
// For some reason you have to "touch" the children collection in
// order for the ItemContainerGenerator to initialize properly.
var necessaryChidrenTouch = Children;
IItemContainerGenerator generator = ItemContainerGenerator;
IDisposable generationAction = null;
int index = 0;
Rect visibilityRect …Run Code Online (Sandbox Code Playgroud) 我试图了解虚拟机监视器(VMM)如何虚拟化CPU.
我现在的理解是,当CPU处于用户模式时,即将执行特权指令时,CPU会发出保护错误中断.在像C这样的高级语言中,特权指令包含在系统调用中.例如,当应用程序需要当前日期和时间(与I/O设备交互的指令具有特权)时,它会调用某个库函数.此库函数的汇编版本包含一个名为"int"的指令,该指令会在CPU中生成陷阱.CPU从用户模式切换到特权模式,并跳转到操作系统提供的陷阱处理程序.每个系统调用都有自己的陷阱处理程序.在此示例中,陷阱处理程序从硬件时钟读取日期和时间并返回,然后CPU将自身从特权模式切换到用户模式.(来源:http://elvis.rowan.edu/~hartley/Courses/OperatingSystems/Handouts/030Syscalls.html)
但是,我不太确定这种理解是否正确.本文提到的(特权)的x86指令POPF不会导致陷阱的概念,从而为VMM复杂的事情:http://www.csd.uwo.ca/courses/CS843a/papers/intro-vm.pdf.根据我的理解,当用户程序显式调用而不是通过系统调用时,popf指令不应该导致陷阱,而应该导致保护错误中断.
所以我的两个具体问题是:
我正在运行一台Windows7(64位)机器vmplayer,它有主机Fedora 25.
我安装docker CE了它,我的例子到现在都运行良好.
问题在于尝试运行docker-machine示例.根据我的理解,需要为docker创建主机.
虽然是有意义的有它Windows和Mac,但我需要它Linux?
甚至更令人困惑的是,为什么我到目前为止尝试的所有例子都运作良好?
另一点是,如果docker-machine不是Linux码头分布的一部分; 那么我们如何创建多个docker主机Linux?
当您知道您的软件(不是驱动程序,不是操作系统的一部分,只是一个应用程序)将主要在虚拟化环境中运行时,是否存在优化代码和/或编译器设置的策略?或者你应该和不应该做什么的指南?
这可能不是0.0x%的性能提升,但可能只是可能有一些简单的事情可以大大提高性能,或者看起来很简单,但在虚拟化环境中是灾难性的.例如,在内核构建中启用CONFIG_PARAVIRT很容易,并且可以大大提高性能.现在我正在为应用程序寻找类似的东西,如果有的话.
在我的情况下,它将是C++代码,可能是VMWare,但我想尽可能保持与语言/产品无关的问题.我想知道是否有这样的策略,或者这是否完全浪费时间 - 毕竟虚拟化的概念是你不必过多关心它.
我得到了 VM 和容器之间的巨大差异。但这让我对 Ubuntu 容器如何存在感到困惑。因为 Ubuntu 是一个操作系统,所以我觉得很矛盾。
https://hub.docker.com/_/ubuntu
这不是一个完整的客户操作系统吗?那么是什么使它成为虚拟机上的容器呢?或者容器和虚拟机之间的界限是否模糊?
我试过在谷歌上搜索这个,但我发现的唯一结果是经典的 VM vs 容器答案,这并不是我真正想问的,我不认为。
编辑 - 我已经更新以尝试进一步澄清我的问题。
我试图将 QEMU 与我正在构建的内核 ISO 一起使用,但我无法运行测试。
我正在使用 Windows 10 64 位,pc-bios如果重要的话,我已将该文件夹添加到 PATH。到目前为止,我已经尝试了以下命令:
Windows 终端屏幕截图
virtualization ×10
wpf ×3
.net ×2
docker ×2
linux ×2
qemu ×2
c# ×1
c++ ×1
containers ×1
dockerhub ×1
listbox ×1
optimization ×1
parallels ×1
sockets ×1
system-calls ×1
treeview ×1
windows-10 ×1
x86 ×1