当前位置:  编程技术>综合
本页文章导读:
    ▪深入浅出WPF 第二部分(26)      XML最大的优势是可以方便地表示带有层级的数据,同时WPF准备了TreeView和MenuView控件用来显示层级数据。能够帮助层级控件显示层级数据的模板是HierarchicalDataTemplate。 <Window x:Class="WpfApp1..........
    ▪MySQL数据库性能优化之硬件优化       个人觉得这其中可能存在一个非常大的误区。我们在谈论基于硬件进行优化的时候,不能仅仅将数据库使用的硬件划分为主机和存储两部分,而是需要进一步对硬件进行更细的分解,至少也.........
    ▪Linux文件系统概述      以Linux 0.11为实例,个人总结,不保证正确性。。。 [文件系统] 磁盘上的数据以块为单位进行读写,每一个块称为一个逻辑块。在理解磁盘的逻辑视图时,以逻辑块为单位来理解。 磁盘上数.........

[1]深入浅出WPF 第二部分(26)
    来源: 互联网  发布时间: 2013-11-05

XML最大的优势是可以方便地表示带有层级的数据,同时WPF准备了TreeView和MenuView控件用来显示层级数据。能够帮助层级控件显示层级数据的模板是HierarchicalDataTemplate。

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!--数据源-->
        <XmlDataProvider x:Key="ds" Source="Data.xml" XPath="Data/Grade"/>
        <!--年级模板-->
        <HierarchicalDataTemplate DataType="Grade" ItemsSource="{Binding XPath=Class}">
            <TextBlock Text="{Binding XPath=@Name}"/>
        </HierarchicalDataTemplate>
        <!--班级模板-->
        <HierarchicalDataTemplate DataType="Class" ItemsSource="{Binding XPath=Group}">
            <RadioButton Content="{Binding XPath=@Name}"/>
        </HierarchicalDataTemplate>
        <!--小组模板-->
        <HierarchicalDataTemplate DataType="Group" ItemsSource="{Binding XPath=Student}">
            <CheckBox Content="{Binding XPath=@Name}"/>
        </HierarchicalDataTemplate>
    </Window.Resources>
    <Grid>
        <TreeView Margin="5" ItemsSource="{Binding Source={StaticResource ResourceKey=ds}}"/>
    </Grid>
</Window>

<?xml version="1.0" encoding="utf-8" ?>
<Data xmlns="">
  <Grade Name="一年级">
    <Class Name="一班">
      <Group Name="A组"/>
      <Group Name="B组"/>
      <Group Name="C组"/>
    </Class>
    <Class Name="二班">
      <Group Name="A组"/>
    </Class>
    <Class Name="三班">
      <Group Name="A组"/>
      <Group Name="B组"/>
      <Group Name="C组"/>
    </Class>
  </Grade>
  <Grade Name="二年级">
    <Class Name="一班">
      <Group Name="A组"/>
      <Group Name="B组"/>
    </Class>
    <Class Name="二班">
      <Group Name="A组"/>
      <Group Name="B组"/>
      <Group Name="C组"/>
      <Group Name="D组"/>
    </Class>
  </Grade>
</Data>

同一种数据类型的嵌套结构只设计一个HierchicalDataTemplate就可以了,它会自动产生迭代应用的效果。

<?xml version="1.0" encoding="utf-8" ?>
<Data xmlns="">
  <Operation Name="文件" Gesture="F">
    <Operation Name="新建" Gesture="N">
      <Operation Name="项目" Gesture="Control + P" />
      <Operation Name="网站" Gesture="Control + W" />
      <Operation Name="文档" Gesture="Control + D" />
    </Operation>
    <Operation Name="保存" Gesture="S" />
    <Operation Name="打印" Gesture="P" />
    <Operation Name="退出" Gesture="X" />
  </Operation>
  <Operation Name="编辑" Gesture="E">
    <Operation Name="拷贝" Gesture="Control + C" />
    <Operation Name="剪切" Gesture="Control + F" />
    <Operation Name="粘帖" Gesture="Control + V" />
  </Operation>
</Data>

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <!--数据源-->
        <XmlDataProvider x:Key="ds" Source="Data_2.xml" XPath="Data/Operation"/>

        <HierarchicalDataTemplate DataType="Operation" ItemsSource="{Binding XPath=Operation}">
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
                    <TextBlock Text="{Binding XPath=@Name}"/>
                    <TextBlock Text="("/>
                    <TextBlock Text="{Binding XPath=@Gesture}"/>
                    <TextBlock Text=")"/>
                </StackPanel>
            </StackPanel>
        </HierarchicalDataTemplate>
    </Window.Resources>
    <Grid MenuItem.Click="MenuItem_Click">
        <Menu Margin="5" ItemsSource="{Binding Source={StaticResource ResourceKey=ds}}"/>
    </Grid>
</Window>

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            MenuItem mi = e.OriginalSource as MenuItem;
            //HierarchicalDataTemplate的作用目标不是MenuItem的内容,而是它的Header。如果针对MenuItem的单击事件进行侦听处理,
            //我们就可以从被单击的Menultem的Header中取出XML数据。
            XmlElement ele = mi.Header as XmlElement;
            MessageBox.Show(string.Format("Operation Name: {0}", ele.Attributes["Name"].Value));
        }



作者:xufei96 发表于2013-1-5 13:56:07 原文链接
阅读:0 评论:0 查看评论

    
[2]MySQL数据库性能优化之硬件优化
    来源: 互联网  发布时间: 2013-11-05

转自 http://isky000.com/

在过往与很多人的交流过程中发现,在谈到基于硬件来进行数据库性能瓶颈分析的时候,常被大家误解为简单的使用更为强劲的主机或者存储来替换现有的设备。

个人觉得这其中可能存在一个非常大的误区。我们在谈论基于硬件进行优化的时候,不能仅仅将数据库使用的硬件划分为主机和存储两部分,而是需要进一步对硬件进行更细的分解,至少也应该分解到如下范畴:

  • 主机
    • CPU:仅仅只能决定运算速度,及时是运算速度都还取决于与内存之间的总线带宽以及内存本身的速度
    • 内存:大小决定了所能缓存的数据量,主要决定了热点数据的访问速度
    • 磁盘:
      • 大小:决定了你最终能存放多少数据量
      • 转速:决定了你每一次IO请求的延时时间,也就是决定了我们常说的IOPS和MBPS
      • 数目:磁盘数目决定了
      • 类型
        • 机械:SAS or SATA or FC ?
        • SSD:磁盘 or PCI卡?
    • Raid卡:
      • 缓存:缓存大小对数据写入速度有较大影响,使用策略也会直接影响IO效率
      • 电池:电池充放电策略会影响到瞬时IO的波动
    • 其他:如总线带宽等,决定了CPU与内存间数据传输效率,这一点很多时候关注较少,但也可能会出现瓶颈

  •     
[3]Linux文件系统概述
    来源: 互联网  发布时间: 2013-11-05

以Linux 0.11为实例,个人总结,不保证正确性。。。

[文件系统]
磁盘上的数据以块为单位进行读写,每一个块称为一个逻辑块。在理解磁盘的逻辑视图时,以逻辑块为单位来理解。
磁盘上数据按照使用情况分,可以分成以下几个部分:引导块、超级块、i节点位图区、逻辑块节点位图区、i节点区、数据区
引导块中是整个系统的启动代码,只有用于启动的文件系统才有数据,其它的文件系统这个块没有数据(可以这样理解)
超级块中存放的是关于整个文件系统的布局描述的数据
i节点位图区中存放的是i节点区中i节点的使用情况
逻辑块节点位图区中存放的是磁盘中逻辑块的使用情况
i节点区中存放的是对应文件的i节点数据
数据区存放文件数据的部分

示意图如下



[超级块]
超级块中含有描述整个文件系统分布的数据。相应的数据结构如下(fs.h)
struct d_super_block {
                 unsigned short s_ninodes; //i节点个数
                 unsigned short s_nzones; //磁盘上全部的逻辑块的个数
                 unsigned short s_imap_blocks;  //i节点位图区所使用的逻辑块的个数
                 unsigned short s_zmap_blocks; //逻辑块位图区所使用的逻辑块的个数
                 unsigned short s_firstdatazone; //第一个数据块的逻辑块号
                 unsigned short s_log_zone_size; 
                 unsigned long s_max_size; // 最大文件长度
                 unsigned short s_magic;   //文件系统魔数
};
struct d_super_block是对磁盘上的超级块的数据描述。

在内存中的超级块的数据结构,除了要存放磁盘中相应的数据外,还要存放一些额外的信息。如读写标志、加锁标志、该文件系统安装的根节点、i节点位图区的高速缓存、设备号等。内存中超级块的数据结构描述如下

struct super_block {
                 
    
最新技术文章:
 




特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3