标签: virtualization

WPF Datagrid:延迟加载/ Inifinite滚动

我用250行填充Datagrid.当用户使用滚动条向下滚动时(例如,低于75%),我想从数据库中获取接下来的250行,依此类推.我们的想法是,网格可能有数百万个结果,我们不希望将它们全部加载,直到用户请求它们为止.这有一个现有的机制吗?

编辑:因为似乎有很多困惑:我不是在寻找标准数据虚拟化解决方案,我已经使用过它们了.但是它们都要求你提前指定"虚拟行"的数量,而这个查询对我来说代价很高.他们之所以需要它,是因为当你知道网格中的总项数时,它会更容易计算当前页面/偏移量等.但是计算该数量是一个非常昂贵的SQL查询,所以我想迁移到另一个我可以跳过COUNT()查询的解决方案.

database wpf virtualization datagrid scroll

9
推荐指数
2
解决办法
1万
查看次数

非SLAT计算机上的Windows Phone 8仿真程序

虽然这个主题在不同的论坛上呈现出不同的混乱讨论,但我在StackOverflow上找不到它的任何实例,这对许多人来说可能是一个重要的问题所以我会在这里开始,因为我现在也在努力这个问题是我的工作场所没有SLAT支持的硬件.

据说:

"新的仿真器基于最新版本的Microsoft Hyper-V,它需要一个包含二级地址转换(SLAT)的64位CPU,这是一种内存虚拟化技术,包含在Intel和AMD的大多数现代CPU中.只需要运行Windows Phone模拟器,您就可以在非SLAT计算机上构建Windows Phone 8应用程序;只需在物理设备上部署和测试它们即可.- [Windows Phone 8开发内部]

现在的问题是我有64位CPU(英特尔Core2Quad),但它没有SLAT支持和许多其他必须有好但非SLAT PC(对于英特尔主要处理器之前i3没有这种支持)

  • 现在我的问题是它真的像死路一样吗?如果有人想为Windows Phone 8开发,他将不得不购买新系统或最新的WP(即使使用WP,在开发过程中也会很麻烦)

  • 使用VMware,Virtual box等其他任何东西都没有办法摆脱它?

  • 是否有其他第三方模拟器或选项可用于实现此目的?

  • 如果不是为什么,那么在新的SDK版本中发生了如此显着的变化,使其无法向后兼容?

我最后再次重复我的主要问题: Is it really impossible to develop for windows phone 8 with its emulator functioning if you have one of non-SLAT supported PCs?

谢谢!

virtualization windows-phone windows-phone-8

8
推荐指数
2
解决办法
1万
查看次数

PHP如何使用超过100%的CPU?

在第三方虚拟服务器上检查客户端的应用程序时,我注意到一个有趣的现象:单个PHP进程似乎使用多个核心.据我所知,PHP无法做到这一点.

行为描述
以下是处理对Web应用程序的单个请求时htop的输出: 输出htop
htop的输出,绿色是用户cpu,红色是系统cpu

所有四个核心都是100%,只有一个PHP进程在396%CPU和内存使用率低.
我已经使用strace或pidstat调查了高系统cpu,但是找不到任何IO问题.

服务器信息
虚拟服务器是Debain LAMP环境,使用英特尔的VT-X虚拟化和Virtuozzo,提供4个560 MHz核心:

lscpu的输出
lscpu

输出服务器在apache 2.4.7(prefork)服务的快速CGI中运行PHP 5.5.9.Nginx 1.9.4用作崇拜代理,Plesk 12.5用于配置服务器.

示例PHP代码(EDIT)
为了排除应用程序代码作为源我使用一段简单的代码确认了行为:

$array = array('z', 'y', 'x', 'h', 'd', 's', 'w', 'q', 'a');
for ($i=0; $i < 9999999; $i++) {
    sort($array); // Delaying execution
}
echo 'loop ended';
Run Code Online (Sandbox Code Playgroud)

两个或多个PHP进程(EDIT) 如果同时处理两个或多个请求,则每个进程在尽可能多的内核上运行(2个进程=>每个进程2个内核,3个进程=> 1.33个内核).

问题

  • PHP可以同时使用多个核心吗?
  • 这可能与虚拟化有关吗?
  • 后续行动:系统CPU使用占主导地位的原因是什么?

php virtualization virtuozzo

8
推荐指数
1
解决办法
1069
查看次数

VirtualBox VM的计算机设置存储屏幕中"Live CD/DVD"复选框的目的或意图是什么?

在VirtualBox虚拟机中安装操作系统的说明有时会建议用户确保选中"Live CD/DVD"复选框.其他说明根本没有提到这个复选框.

这个复选框的目的是什么?它的设置在VirtualBox VM的操作中是否有任何功能差异?

无论这个复选框的设置如何,我都可以启动和安装Live CD/DVD,所以我很困惑为什么它甚至存在.我在VirtualBox用户手册中找不到这个设置的明确参考(我是否想念它?),让我更加困惑.

这是我正在引用的特定项目的屏幕截图:

在此输入图像描述

checkbox virtualization settings virtualbox live-cd

8
推荐指数
1
解决办法
2729
查看次数

扩展选择模式,虚拟化和IsSelected绑定

在扩展选择模式下,IsSelected绑定似乎有问题。看起来只有选择中的最后一项超出了范围,才能正确处理。

示范:

项目012989796与选择Control。选择94(无Control!)时,选择计数器应为1,但您会看到3。向上滚动将显示未选中范围中只有一个(最后一个)选择项。

以下是mcve:

xaml:

<ListBox ItemsSource="{Binding Items}" SelectionMode="Extended" SelectionChanged="ListBox_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Text}" />
        </DataTemplate>
    </ListBox.ItemTemplate>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="IsSelected" Value="{Binding IsSelected}" />
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)

CS:

public class NotifyPropertyChanged : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;
    public void OnPropertyChanged([CallerMemberName] string property = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property));
}

public class …
Run Code Online (Sandbox Code Playgroud)

c# wpf virtualization mvvm selection

8
推荐指数
1
解决办法
928
查看次数

如何完全自动化无人值守的虚拟安装?

首先我要说的是我想做的事情。我想以无人值守的方式完全自动化使用virt-install. 我知道有些人使用 GUI 工具来执行此操作,或者他们编辑预先存在的图像的 XML 描述,但我想从头开始。

我用谷歌搜索了一下,很难找到这样做的例子。我发现这是virt-install要使用的命令,并且它可以与附加的 TTY 控制台交互使用(您在安装过程中手动回答配置问题)。对于完全自动化的解决方案,您可以指定一个kickstart文件(通常是preseed.cfg)来提供您通常手动输入的问题的答案。kickstart 文件还可以指定要安装的附加软件、磁盘和网络配置等)。

我认为我已经完成了大部分工作,只是安装在安装开始后不久就挂起了。我认为这与是否需要(或不需要)将控制台连接到安装有关。这是virt-install我正在使用的命令:

virt-install --connect qemu:///system \
  --name vm --ram 128 \
  --disk path=./vm.qcow2,size=8,format=qcow2 \
  --location 'http://archive.ubuntu.com/ubuntu/dists/trusty/main/installer-amd64/' \
  --network user,model=virtio \
  --initrd-inject preseed.cfg \
  --extra-args="console=tty0 console=ttyS0,115200"
Run Code Online (Sandbox Code Playgroud)

这是这个preseed.cfg文件(我从网上和 Ubuntu 文档中的许多示例中抄袭的):

### Localization
# Locale sets language and country.
d-i debian-installer/locale string en_US
# Keyboard selection.
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/modelcode string pc105
d-i keyboard-configuration/variantcode string

### Network configuration …
Run Code Online (Sandbox Code Playgroud)

virtualization kvm qemu

8
推荐指数
1
解决办法
8616
查看次数

嵌套虚拟化与KVM:嵌套虚拟化中的qemu中的-enable-kvm

在我已经虚拟化的主机中,尝试传递选项选项-enable-kvm -m 1024将失败:

qemu-system-x86_64  -vga std -enable-kvm -m 1024   -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none
# Could not access KVM kernel module: No such file or directory
# failed to initialize KVM: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果我删除该选项-enable-kvm -m 1024,qemu将加载(但它将永远,因为它使用软件模拟):

qemu-system-x86_64  -vga std  -monitor telnet:localhost:9313,server,nowait -drive file=my_img.img,cache=none
# qemu running, OK, but image taking forever to load.
Run Code Online (Sandbox Code Playgroud)

当然,我的这个虚拟化主机具有嵌套自己的虚拟化的能力.无处不在我找到有关它的信息[比如这里:https: //docs.openstack.org/developer/devstack/guides/devstack-with-nested-kvm.html ]告诉我,我必须检查一下/sys/module/kvm_intel/parameters/nested根本没有的文件,因为kvm-intel不是也不能从图像中加载:

sudo modprobe  kvm-intel
# modprobe: ERROR: could not insert 'kvm_intel': Operation not …
Run Code Online (Sandbox Code Playgroud)

virtualization kvm qemu

8
推荐指数
2
解决办法
3318
查看次数

在 macos 虚拟机上运行支持 metal 的应用程序

是否有任何支持金属 api 的虚拟化解决方案?

我们有一个在内部使用 Metal 的应用程序,我们想在不同的 macOS 版本中测试它。不幸的是,VirtualBox、Parallels Desktop 和 VMWare Fusion 似乎没有在他们的来宾 macOS 中启用 Metal API。

我们如何在没有多台物理机或不使用双启动的情况下测试应用程序?

testing macos virtualization vmware-fusion metal

8
推荐指数
1
解决办法
2026
查看次数

如何在 Linux 上的 VirtualBox 上在 Windows 上运行 Docker?

主机系统是 Archlinux。我想开发需要运行 Windows docker 容器的 .NET 4.6.1 应用程序。所以我在VirtualBox下运行Win10。然后我在 Win10 中安装 Docker 以运行 Windows docker 容器。Linux -> VirtualBox -> Win10 -> Docker -> Windows docker 容器 -> 要运行的应用程序。

或者更具体地说,VirtualBox 是否支持 Windows 10 的 WSL 2 虚拟化(自 2020 年 5 月更新后可用)?

在 VirtualBox 上的 VM 设置中,我选中了半虚拟化下的“启用嵌套 VT-x/AMD-V”、“Hyper-V”和“启用嵌套分页”。然后我运行我的 Win10 Pro 安装。Speccy 显示“虚拟化:支持,已启用”。安装并运行 WSL 2 以及 Hyper-V 和虚拟机平台功能。当我运行 Docker 时,它失败并显示以下错误。

System.InvalidOperationException:
Failed to deploy distro docker-desktop to C:\Users\WinUser\AppData\Local\Docker\wsl\distro: exit code: -1
 stdout: Please enable the Virtual Machine Platform Windows feature and ensure virtualization is …
Run Code Online (Sandbox Code Playgroud)

linux windows virtualization virtualbox docker

8
推荐指数
1
解决办法
4953
查看次数

QEMU 中关于 virtio-net-pci 和 virtio-net 的混淆

我对 QEMU 源代码中存在的两个模拟设备 hw/net/virtio-net.c 和 hw/virtio/virtio-net-pci.c 感到有点困惑。看起来 virio-net-pci.c 是基于 virtio 规范的 NIC 模拟,但我不明白 hw/net/virtio-net.c 的用途是什么?

除此之外,我看到了 hw/net/vhost_net.c 但不明白在什么情况下使用了它?

virtualization qemu linux-device-driver arm64

8
推荐指数
1
解决办法
9021
查看次数