问题列表 - 第19955页

下载期间的ASP.net内存使用情况

在我工作地点的ASP.net站点上,以下代码块负责处理文件下载(注意:此处未使用Response.TransmitFile,因为下载的内容是从zip文件流式传输的):

private void DownloadFile( Stream stream)
{
        int bytesRead;
        int chunkSize = 1048576; //1MB

        byte[] readBuffer = new byte[chunkSize];
        while ((bytesRead = stream.Read(readBuffer, 0, readBuffer.Length)) != 0)
            {
                if(!Response.IsClientConnected)
                    break;
                byte[] chunk = new byte[bytesRead];
                Array.Copy(readBuffer,0,chunk,0,bytesRead);
                Response.BinaryWrite(chunk);
                Response.Flush();
        }
        stream.Close();
}
Run Code Online (Sandbox Code Playgroud)

我们的用户经常下载数百MB的文件,这可以很快地咀嚼服务器内存.我的假设是这是由于响应缓冲.那有意义吗?

我刚刚读到了Response对象的'buffer'属性.如果我将其设置为false,是否会阻止Response.BinaryWrite()调用缓冲内存中的数据?一般来说,在这种情况下限制内存使用的好方法是什么?也许我应该从zip流式传输到临时文件,然后调用Response.TransmitFile()?

编辑:除了可能的解决方案,我对上面代码中存在的内存使用问题的解释非常感兴趣.为什么这会消耗远远超过1MB,即使在每次循环迭代时调用Response.Flush?它只是在每次循环迭代时发生的不必要的堆分配(并且不会立即得到GC),或者还有其他工作吗?

asp.net response response.write

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

C++函数调用,编译时参数未知

听起来很奇怪,我需要用C++调用一个函数,我不知道签名.基本上,我想让用户指定参数列表和参数类型,然后尝试使用这些参数调用给定的函数.然后我想知道函数调用是否有效,如果它(奇迹般地)做了,返回值是什么(假设返回类型不是空的).有没有办法实现这一目标?谢谢.

c++

6
推荐指数
2
解决办法
1159
查看次数

键盘布局库,在给定输入键的情况下查找相邻键(最好是java)

有没有人知道一个库(最好是java)可以给我相邻的键给定US_ENGLISH标准键盘的键输入?

例如,如果我输入字符'd',我应该返回以下字符:[w,e,r,s,f,x,c,v].

或者,网格操作api也可以工作(这样我可以实例化具有qwerty键盘布局的网格并使用它来查找我的邻居).

注1:我使用'character'和'key'这两个词来代表字符.

注2:我知道我可以硬编码一种方法来将50个左右的主键映射到它们的邻居.我正在寻找更好的解决方案.

谢谢.

java api keyboard keyboard-layout

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

比使用"A UNION(B in A)"更高效的SQL?

编辑1(澄清):感谢您到目前为止的答案!回应令人满意.
我想稍微澄清一下这个问题,因为根据答案,我认为我没有正确描述问题的一个方面(而且我确信这是我的错,因为即使是我自己也很难定义它).
这里的难题是:结果集应该只包含与BETWEEN"2010-01-03" TSTAMP的记录和"2010-01-09",以及一个记录,其中TSTAMP IS NULL在第一组中的每个order_num(会有对于每个order_num,总是一个null tstamp).
到目前为止给出的答案似乎包括某个order_num的所有记录(如果有的话)与tstamp BETWEEN'2010-01-03'和'2010-01-09'.例如,如果存在与order_num = 2和TSTAMP另一个记录= 2010-01-12 00:00:00它应该被包含在结果中.

原始问题:
考虑包含id(唯一),order_num,tstamp(时间戳)和item_id(订单中包含的单个项目)的订单表.除非订单已被修改,否则tstamp为null,在这种情况下,存在具有相同order_num的另一个记录,然后tstamp包含更改发生时的时间戳.

例...

id  order_num  tstamp               item_id
__  _________  ___________________  _______
 0          1                           100
 1          2                           101
 2          2  2010-01-05 12:34:56      102
 3          3                           113
 4          4                           124
 5          5                           135
 6          5  2010-01-07 01:23:45      136
 7          5  2010-01-07 02:46:00      137
 8          6                           100
 9          6  2010-01-13 08:33:55      105

检索在特定日期范围内被修改过一次或多次的所有订单(基于order_num)的最有效的SQL语句是什么?换句话说,对于每个订单,我们需要具有相同order_num的所有记录(包括具有NULL tstamp的那个),对于每个order_num,WHERE中至少有一个order_num具有tstamp NOT NULL和tstamp BETWEEN'2010-01-03'和'2010-01-09'.这是"我们遇到困难时,至少有一个order_num具有tstamp NOT NULL". …

sql union where

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

HTML 5 SQLite:一次事务中的多个插入

有可能做这样的事情:

begin;
    insert into some_table (some_col, another_col) values ('a', 'b');
    insert into some_table (some_col, another_col) values ('c', 'd');
    ...
commit;
Run Code Online (Sandbox Code Playgroud)

...在HTML 5中?

由于每个事务都是异步并且拥有它自己的回调,在我看来,编写一个插入未知数量的行的例程并在完成后回调它是很困难的.

html javascript sqlite html5

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

考虑到Java(该语言)是独立于平台的,为什么JVM不是独立于平台的?

只是好奇知道什么时候java独立于平台,那么JVM是否有任何特定的原因使平台依赖...

java jvm

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

Android的点密码系统的熵是多少?

机器人点登录系统有多少种排列可能?我知道这个问题的解决方案在于离散数学,特别是没有重复的排列,如果你的答案没有使用排列或组合你是不正确的.

密码的长度在4到9个点之间,但总共有9个点可以进行置换.所以我的初始等式是:

9P4+9P5+9P6+9P7+9P8+9P9
Run Code Online (Sandbox Code Playgroud)

但是,我知道这个等式是不完整的,因为它没有考虑所有的规则.每个点都是不同的,因为它是位置所以如果你为每个点分配一个数字,如下所示:

123
456
789
Run Code Online (Sandbox Code Playgroud)

密码"1397"是不可能的,如果您尝试使用此密码,您实际上已输入"1236987",因为中间的数字是自动选择的.需要创建另一个等式来解释这些限制,然后从上面的nPr等式中减去.

链接有一个很棒的视频,有人使用Android登录.它还详细介绍了规则.该页面上的数学是完全错误的,他甚至不接近真正的解决方案.

security math statistics cryptography

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

NSURL的parameterString混淆使用';' vs'&'

我想-[NSURL parameterString]用来解析我已经传递的URL的参数.它说URL必须符合RFC 1808,但现在想知道我们的吗?!?我们使用类似的东西:

http://server/path/query?property1=value1&property2=value2

但RFC 1808从未提及&符号(&)作为有效的参数分隔符(至少我读它的方式).它表示分号(;).也许是因为它是在1995年起草的?有&取代了; ?如果是这样,任何人都验证NSURL的parameterString是否也将使用&作为分隔符进行解析?

在挖掘大洞之前,"正确"的方式是什么?

parameters url cocoa cocoa-touch nsurl

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

用于为COM DLL创建.NET包装器的工具?

是否有任何开源工具可以自动为COM DLL库生成.NET包装器?

.net c# com wrapper

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

newInstance失败:没有<init>

我无法实例化子活动.在logcat中我看到这一行:

01-22 15:14:38.906: DEBUG/dalvikvm(411): newInstance failed: no <init>()
Run Code Online (Sandbox Code Playgroud)

这是dalvik中生成该logcat的行.

/*
 * public T newInstance() throws InstantiationException, IllegalAccessException
 *
 * Create a new instance of this class.
 */
static void Dalvik_java_lang_Class_newInstance(const u4* args, JValue* pResult)
...
    /* find the "nullary" constructor */
    init = dvmFindDirectMethodByDescriptor(clazz, "<init>", "()V");
    if (init == NULL) {
        /* common cause: secret "this" arg on non-static inner class ctor */
        LOGD("newInstance failed: no <init>()\n");
        dvmThrowExceptionWithClassMessage("Ljava/lang/InstantiationException;",
            clazz->descriptor);
        RETURN_VOID();
    }
Run Code Online (Sandbox Code Playgroud)

以下是我在计时器处理程序中激活活动的操作.

// move on to Activation
// ePNSplash is …
Run Code Online (Sandbox Code Playgroud)

android

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