问题列表 - 第25730页

使用QStrings作为密钥的QHash查找速度

我需要在a上绘制动态叠加层QImage.叠加的组成部分用XML定义,并解析QHash<QString, QPicture>为QString是名称的位置(例如"十字准线"),并且QPicture是独立于分辨率的绘图.然后,我在运行时确定的位置处绘制叠加的组件.

示例:我的QHash中有10张图片,构成了HUD中的每个可能元素.在特定的视频帧期间,我需要在图像的不同位置绘制其中的6个.在下一帧期间,某些事情发生了变化,现在我只需要绘制其中的4个,但其中2个位置已经改变.

现在我的问题是:如果我想快速完成这个,我应该重新定义我的QHash QHash<int, QPicture>并枚举键来抵消字符串比较造成的开销; 或者这些比较不会对绩效产生很大影响?我可以很容易地转换为整数键,因为XML解析器和叠加组合器是完全独立的类; 但我想在整个应用程序中使用一致的数据结构.

我是否应该克服我对一致性和可重用性的渴望,以提高性能?如果我这样做会非常重要吗?

c++ hash performance qt qt4

4
推荐指数
2
解决办法
1838
查看次数

适用于Windows的NCurses-Like System

有没有类似于Ncurses的C++库,但对于Windows?似乎没有Ncurses的端口,我需要一个非常好的显示系统.

有什么建议?跨平台是一个加号.

c++ ncurses

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

包含非null元素的列表最终包含null.同步问题?

首先,对标题感到抱歉 - 我无法弄清楚那个短而清晰的标题.

这是问题:我有一个列表List<MyClass> list,我总是添加新创建的实例MyClass,如下所示:list.Add(new MyClass()).我不以任何其他方式添加元素.

但是,然后我遍历列表foreach并发现有一些空条目.也就是说,以下代码:

foreach (MyClass entry in list)
    if (entry == null)
         throw new Exception("null entry!");
Run Code Online (Sandbox Code Playgroud)

有时会抛出异常.我应该指出,这些list.Add(new MyClass())是从同时运行的不同线程执行的.我能想到的唯一考虑null条目的是并发访问.List<>毕竟,这不是线程安全的.虽然我仍然觉得奇怪的是它最终包含空条目,而不是在订购时不提供任何保证.

你能想到其他任何原因吗?

此外,我不关心添加项目的顺序,我不希望调用线程阻止等待添加其项目.如果同步确实是问题,你能推荐一种简单的方法来Add异步调用该方法,即创建一个委托,在我的线程继续运行其代码时处理它吗?我知道我可以创建一个代表Add并调用BeginInvoke它.这看起来合适吗?

谢谢.


编辑:一个基于凯文的建议的简单解决方案:

public class AsynchronousList<T> : List<T> {

    private AddDelegate addDelegate;
    public delegate void AddDelegate(T item);

    public AsynchronousList() {
        addDelegate = new AddDelegate(this.AddBlocking);
    }

    public void AddAsynchronous(T item) {
        addDelegate.BeginInvoke(item, null, null);
    }

    private void …
Run Code Online (Sandbox Code Playgroud)

c# null synchronization asynchronous list

4
推荐指数
1
解决办法
1015
查看次数

PHP Documentor中的注释关联数组

我在PHP应用程序中使用了几个关联数组,我使用PHP文档来评论我的源代码.我从来没有真正为数组中的数组指定注释,但现在我需要这样做而不知道如何.

$array = array('id' => 'test', 'class' => 'tester', 'options' => array('option1' => 1, 'option2' => 2))
Run Code Online (Sandbox Code Playgroud)

如何以正确的方式@var@param评论对此数组进行注释?我可以这样做,但我不知道这是否正确:

@param string $array['id']
@param string $array['class']
@param int $array['options']['option1']
Run Code Online (Sandbox Code Playgroud)

但是如何为这@var部分做到这一点?

php arrays associative-array phpdoc

19
推荐指数
4
解决办法
2万
查看次数

枚举对象上的python dict函数

如果我有一个枚举对象x,为什么要执行以下操作:

dict(x)
Run Code Online (Sandbox Code Playgroud)

清除枚举序列中的所有项目?

python dictionary enumerate

4
推荐指数
1
解决办法
9173
查看次数

用户Crontab + Python +随机壁纸=不工作?

我有一个python脚本,可以通过gconf将桌面壁纸正确设置为给定文件夹中的随机图片.

然后我在我的crontab中有以下条目

* * * * * python /home/bolster/bin/change-background.py

并且syslog正确报告执行情况

Apr 26 14:11:01 bolster-desktop CRON[9751]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:12:01 bolster-desktop CRON[9836]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:13:01 bolster-desktop CRON[9860]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:14:01 bolster-desktop CRON[9905]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:15:01 bolster-desktop CRON[9948]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Apr 26 14:16:01 bolster-desktop CRON[9983]: (bolster) CMD (python /home/bolster/bin/change-background.py)
Run Code Online (Sandbox Code Playgroud)

但没有任何桌面变化,任何想法?

python ubuntu cron gnome gconf

5
推荐指数
1
解决办法
1347
查看次数

使用Django显示上传文件的内容(而不是保存)

我如何拥有一个带有FileField的表单,其中上传的文件将不会被保存,而是其文本内容将被提取和显示?

django django-forms django-file-upload

5
推荐指数
1
解决办法
5177
查看次数

独立Java应用程序是否有"最佳"或最受欢迎的数据库?

独立Java应用程序是否有"最佳"或更受欢迎的数据库?我目前正在手工编写,但我想知道通常做什么,如果有什么常见的事情.

更新:谈论小应用程序(可能会增长,但现在很小)

java database desktop

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

C#随机数生成器卡在一个循环中

我正在使用.NET创建一个人工生命程序,我正在使用C#在Singleton中定义的伪随机类.我的想法是,如果我在整个应用程序中使用相同的随机数生成器,我只能保存种子,然后从种子重新加载以重新计算某个有趣的运行.

public sealed class RandomNumberGenerator : Random
{
    private static readonly RandomNumberGenerator instance = new RandomNumberGenerator();

    RandomNumberGenerator()
    {

    }

    public static RandomNumberGenerator Instance
    {
        get
        {
            return instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我还想要一个可以给我两个不同随机数的方法.

public static Tuple<int, int> TwoDifferentRandomNumbers(this Random rnd, int minValue, int maxValue)
    {
        if (minValue >= maxValue)
            throw new ArgumentOutOfRangeException("maxValue", "maxValue must be greater than minValue");
        if (minValue + 1 == maxValue)
            return Tuple.Create<int, int>(minValue, maxValue);

        int rnd1 = rnd.Next(minValue, maxValue);
        int rnd2 = rnd.Next(minValue, maxValue);
        while (rnd1 == …
Run Code Online (Sandbox Code Playgroud)

c# random thread-safety

5
推荐指数
2
解决办法
2066
查看次数

在.NET中以高速率发送SMTP电子邮件

我有一个.NET服务,它处理后台线程上的队列,并从队列中的项目以非常高的速率发送大量的小电子邮件(如果可能的话,每秒100条消息).目前,我使用,SmtpClient.Send()但我担心它可能会妨碍性能.

每次调用Send()都会经历一个完整的循环,打开套接字,执行SMTP会话(HELO,MAIL FROM,RCPT TO,DATA)并关闭套接字.在伪代码中:

for each message {
  open socket
  send HELO
  send MAIL FROM
  send RCPT TO
  send DATA
  send QUIT
  close socket
}
Run Code Online (Sandbox Code Playgroud)

(编辑:这句话SmtpClient.Send()实际上是假的,正如我在答案中解释的那样.)

我认为以下伪代码将更加优化:

open socket
send HELO
for each message {
  send MAIL FROM
  send RCPT TO
  send DATA
}
send QUIT
close socket
Run Code Online (Sandbox Code Playgroud)

我是否应该关注SmtpClient.Send()高速发送电子邮件时的表现?我有哪些优化性能的选择?

.net email smtp

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