在c#中,啥叫键/值对?啥叫哈希代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在c#中,啥叫键/值对?啥叫哈希代码?相关的知识,希望对你有一定的参考价值。

在C#中,键值对就是指 Name-value成对出现记录。比如 张三的序号是1,李四的是2,那么我们就获得了两个键值对:1-张三,2-李四。

哈希代码在C#中可以认为就是HashTable类(它是一种数据结构算法),这个类中可以存储键值对。可以把它看做是一个键值对的容器。
比如在C#中,我可以利用如下代码向哈希容器中添加键值对:

System.Collections.Hashtable table = new System.Collections.Hashtable();
table[1] = "One";
table[2] = "Two";
table[13] = "Thirteen";

foreach (DictionaryEntry entry in table)

MessageBox.Show("键是:"+entry.Key.ToString()+" 值是:"+entry.Value.ToString());

得到的结果就是:
键是:13 值是:Thirteen
键是:2 值是:Two
键是:1 值是:One
参考技术A 哈希是一个存储对象的集合,跟List有点像,加值的时候有一个需要存入两个值,一个是Key一个是Value ,Value代表你想要存入的对象。Key是一个索引,方便你找到某个你存入的值!追问

哈希一般用在什么地方呢?用 arrylist 不可以吗

啥叫sched-domain

这周问过公司里专家,说cpu-load是说CPU的计算能力,但是从代码实在不知道cpu-load说的是啥!

SD_SHARE_CPUPOWER 0X8000  domain的成员共享cpu power!

SD_SHARE_PKG_RESOURCES  domain成员共享pkg resource!

为什么要引入rt scale down的问题?

e9e9250bc78e7f6342517214c0178a529807964b

这个commit中的解释是:

sched: scale down cpu_power due to RT tasks

keep an average of amount of time spent on RT time and use the fraction to scale down the cpu_power for regular task,这个是

-------------------------------

sched_rt_avg_update 的巧妙计算方法:

static inline void sched_rt_avg_update(struct rq *rq, u64 rt_delta)

{

  rq->rq_avg += rt_data;

  sched_avg_update(rq);

}

void sched_avg_update(struct rq *rq)

{

  s64 period = sched_avg_period();

  while(s64(rq->clock - rq->age_stamp) > pereriod)) {

    rq->age_stamp += period;

    rq->rt_avg /= 2;

}

详细分析下上面的公式发生了啥,

while循环不断在把age_stamp往rq->clock上靠,但是

}

 

--------------------------------

这个值在初始化sched-group的时候用的最多,是说smt关系的看看cpu的能力到底是多少吗?

http://cache.baiducontent.com/c?m=9d78d513d98210fc06ba837f7d01d0120e55f0237ac0d16568d3e75f9214191c0231a3af60624e0b89833a2516ae3a41f7b57337200357e3d1cb8b4ccabbe57478ce3a77230b863711c419d9cb4523c023934de9d84aa6f8ba&p=993dc64ad4934eaf5be7e6291c7a93&newp=8f368d0a86cc41ac52fec7710f00c4231610db2151d4da01298ffe0cc4241a1a1a3aecbf21241406d3c2786206ae4e5deef034743d0034f1f689df08d2ecce7e3c&user=baidu&fm=sc&query=scale%5Frt%5Fpower&qid=ed7985e500042b74&p1=7

该函数用于计算指定CPU上可用于完全公平调度的CPU POWER统计值。

比如把整个CPU的Power 看为 SCHED_LOAD_SCALE,

该CPU上用于运行实时进程平均时间为rq->rt_avg.

那么可用于完全公平调度的时间就为 available = total - rq->avg.

然后 ( available / total ) * SCHED_LOAD_SCALE就是该CPU可用于运行非实时进程的Power值。

unsigned long scale_rt_power(int cpu)

{
    struct rq *rq = cpu_rq(cpu);
    u64 total, available;

    sched_avg_update(rq);

    total = sched_avg_period() + (rq->clock - rq->age_stamp);
    available = total - rq->rt_avg;

    if (unlikely((s64)total < SCHED_LOAD_SCALE))
        total = SCHED_LOAD_SCALE;

    total >>= SCHED_LOAD_SHIFT;

    return div_u64(available, total);

}


 

以上是关于在c#中,啥叫键/值对?啥叫哈希代码?的主要内容,如果未能解决你的问题,请参考以下文章

opencv中啥叫插值

在C语言编程中啥叫前导空格,啥叫尾随空格

java中啥叫分模块开发,为啥要分模块开发

啥叫sched-domain

请问啥叫回调方法?

在java 中,啥叫父类,啥叫子类