问题列表 - 第47299页

性能创意(内存中的C#hashset并包含太慢)

我有以下代码

private void LoadIntoMemory()
{
    //Init large HashSet
    HashSet<document> hsAllDocuments = new HashSet<document>();

    //Get first rows from database
    List<document> docsList = document.GetAllAboveDocID(0, 500000);

    //Load objects into dictionary
    foreach (document d in docsList)
    {
        hsAllDocuments.Add(d);
    }

    Application["dicAllDocuments"] = hsAllDocuments;
}

private HashSet<document> documentHits(HashSet<document> hsRawHit, HashSet<document> hsAllDocuments, string query, string[] queryArray)
{
    int counter = 0;
    const int maxCount = 1000;

    foreach (document d in hsAllDocuments)
    {
        //Headline
        if (d.Headline.Contains(query))
        {
            if (counter >= maxCount)
                break;
            hsRawHit.Add(d);
            counter++;
        }

        //Description
        if (d.Description.Contains(query)) …
Run Code Online (Sandbox Code Playgroud)

c# performance hashtable contains hashset

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

即使目录存在,nant directory :: exists也会返回false

我正在尝试检查目录是否作为NAnt脚本的一部分存在并获得误报.这是脚本片段:

<echo message="${backup.dir} --> ${directory::exists('${backup.dir}')}"/>
Run Code Online (Sandbox Code Playgroud)

这是输出:

[echo] D:\D\RTC\backup\20110223 --> False
Run Code Online (Sandbox Code Playgroud)

除了目录存在.

作为旁注,如果我跑..

<echo message="${backup.dir} --> ${directory::get-creation-time('${backup.dir}')}"/>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Expression: ${backup.dir} --> ${directory::get-creation-time('${backup.dir}')}
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    Could not find a part of the path "D:\D\RTC\${backup.dir}".
Run Code Online (Sandbox Code Playgroud)

如果我跑..

<echo message="Directory Name --> ${path::get-directory-name('${backup.dir}')}"/>
Run Code Online (Sandbox Code Playgroud)

我明白了

[echo] Directory Name -->
Run Code Online (Sandbox Code Playgroud)

总而言之,我现在很困惑..有什么想法吗?

nant

3
推荐指数
1
解决办法
2305
查看次数

关于OpenMP和MPI中并行编程的书籍

在过去的6年里,我一直在使用C和FORTRAN进行编程,但直到现在我才进行了串行编程.我现在想切换到并行程序设计,但我还没有找到一本可以帮助我实现这一目标的书.我看过Chandra关于OpenMP中并行编程的书和Michael J. Quinn关于使用Open Mp和MPI编写C语言的书,但我想知道是否有更好的替代这两个.提前致谢!

普拉香特

parallel-processing

6
推荐指数
1
解决办法
3437
查看次数

unicode().decode('utf-8','ignore')引发UnicodeEncodeError

这是代码:

>>> z = u'\u2022'.decode('utf-8', 'ignore')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/encodings/utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2022' in position 0: ordinal not in range(256)
Run Code Online (Sandbox Code Playgroud)

为什么在使用.decode时会引发UnicodeEncodeError?

当我使用'ignore'时,为什么会出现错误?

python unicode

43
推荐指数
3
解决办法
8万
查看次数

为什么机器码操作系统中的可执行文件依赖?

在Windows中,当我编译一个简单的'C'程序时,我得到了最终的可执行机器代码.exe.在unix中使用gcc的同样的事情产生一个.out机器代码文件.

这些有什么区别?

我的基本问题是,.exe.out为机器代码,为什么他们依赖于操作系统?

就像在Unix中我无法.exe直接执行而在Windows中,我无法执行.outUnix.为什么会这样?

c operating-system

6
推荐指数
1
解决办法
1541
查看次数

IP地址验证

我正在重构我的代码,并希望使用该IPAddress.TryParse方法来验证字符串是否是有效的IPv4地址而不是使用正则表达式:

public static bool IsIPv4(string value)
{
    IPAddress address;

    if (IPAddress.TryParse(value, out address))
    {
        if (address.AddressFamily == AddressFamily.InterNetwork)
        {
            return true;
        }
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

我的单元测试现在失败了,因为这些输入值返回true并被解析为以下IPAddress对象:

value = "0.0.0.0"      ->  address = {0.0.0.0}
value = "255.255.255"  ->  address = {255.255.0.255}
value = "65536"        ->  address = {0.1.0.0}
Run Code Online (Sandbox Code Playgroud)

这有意义吗?我可以看到这0.0.0.0在技​​术上是一个有效的IPv4地址,即使用户输入它也没有意义.那两个呢?为什么他们以他们的方式进行转换,我应该将它们视为有效,即使它对用户来说可能不是透明的,用户可能只是忘记输入句点(65536而不是6.5.5.36).

任何帮助都非常感谢.

.net c# ip validation parsing

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

Android是否仅从UI线程强制执行UI操作?

我知道Android应用程序只有一个UI线程.

运行时是否强制所有UI调用都是从该线程进行的,还是由程序员决定是否确保没有从其他线程进行UI调用?

user-interface multithreading android

0
推荐指数
1
解决办法
190
查看次数

SQL CROSS JOIN问题

我的SQL查询遇到了一些麻烦.

我有两张桌子:

表格1

id  guid  title     D0      D1     D2
-----------------------------------------
1   guid1 Title1    0.123  -0.235  0.789
2   guid2 Title2   -0.343   0.435  0.459
3   guid3 Title3    0.243  -0.267 -0.934
...
100 guid4 Title100 -0.423   0.955  0.029
Run Code Online (Sandbox Code Playgroud)

和表2(注意它具有相同的模式,只是不同的数据).

id  guid  title     D0      D1     D2
----------------------------------------
1   guid1 Title1    0.233  -0.436 -0.389
2   guid2 Title2   -0.343   0.235  0.789
3   guid3 Title3    0.573  -0.067 -0.124
...
100 guid4 Title100 -0.343   0.155  0.005
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚如何编写一个SELECT语句,返回所有标题的WHERE所有组合ABS(Table1_D0*Table2_D0)+ABS(Table1_D1*Table2_D1)+ABS(Table1_D2*Table2_D2)都小于一个阈值(可能是硬编码).

到目前为止,我正在尝试使用a CROSS JOIN,但我不确定这是否是正确的方法.

这有意义吗? …

.net c# sql sql-server cross-join

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

异步线程和会话

当使用此签名生成新的异步线程时,ASP.NET会话对象是否可用于此新线程?

IAsyncResult asyncCall = f.BeginInvoke(null, f);
Run Code Online (Sandbox Code Playgroud)

c# asp.net session asynchronous

7
推荐指数
1
解决办法
3578
查看次数

在foreach循环中获取下一个元素

我有一个foreach循环,我想看看循环中是否有下一个元素,所以我可以将当​​前元素与下一个元素进行比较.我怎样才能做到这一点?我已经阅读了当前和下一个功能,但我无法弄清楚如何使用它们.

提前致谢

php foreach

45
推荐指数
6
解决办法
10万
查看次数