小编Ant*_*ton的帖子

C中最快的交错操作?

我有一个指针的字节数组mixed,包含两个不同的阵列的交错字节array1array2.说mixed看起来像这样:

a1b2c3d4...
Run Code Online (Sandbox Code Playgroud)

我需要做的是解交织字节,所以我得到array1 = abcd...array2 = 1234....我知道mixed提前的长度,长度array1array2等价,都等于mixed / 2.

这是我目前的执行(array1array2已经被分配):

int i, j;
int mixedLength_2 = mixedLength / 2;
for (i = 0, j = 0; i < mixedLength_2; i++, j += 2)
{
    array1[i] = mixed[j];
    array2[i] = mixed[j+1];
}
Run Code Online (Sandbox Code Playgroud)

这避免了任何昂贵的乘法或除法运算,但仍然运行得不够快.我希望有类似的东西memcpy需要一个可以使用低级块复制操作来加速该过程的索引器.是否有比我现有的更快的实施?

编辑

目标平台是针对iOS和Mac的Objective-C.对于iOS设备而言,快速操作更为重要,因此针对iOS的解决方案将比没有更好.

更新

感谢大家的回应,尤其是Stephen Canon,Graham Lee和Mecki.这是我的"主"功能,使用Stephen的NEON内在函数(如果可用)和Graham的联合游标,Mecki建议的迭代次数减少.

void interleave(const uint8_t *srcA, const uint8_t …
Run Code Online (Sandbox Code Playgroud)

c arrays performance extract memcpy

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

为什么IHttpAsyncHandler在负载下泄漏内存?

我注意到.NET IHttpAsyncHandler(以及IHttpHandler,在较小程度上)在受到并发Web请求时泄漏内存.

在我的测试中,Visual Studio Web服务器(Cassini)从6MB内存跳到100MB以上,一旦测试完成,它们都没有被回收.

问题可以很容易地重现.使用两个项目创建一个新的解决方案(LeakyHandler):

  1. ASP.NET Web应用程序(LeakyHandler.WebApp)
  2. 控制台应用程序(LeakyHandler.ConsoleApp)

在LeakyHandler.WebApp中:

  1. 创建一个名为TestHandler的类,它实现了IHttpAsyncHandler.
  2. 在请求处理中,进行简短的休眠并结束响应.
  3. 将HTTP处理程序添加到Web.config作为test.ashx.

在LeakyHandler.ConsoleApp中:

  1. 为test.ashx生成大量HttpWebRequests并异步执行它们.

随着HttpWebRequests(sampleSize)的数量增加,内存泄漏变得越来越明显.

LeakyHandler.WebApp> TestHandler.cs

namespace LeakyHandler.WebApp
{
    public class TestHandler : IHttpAsyncHandler
    {
        #region IHttpAsyncHandler Members

        private ProcessRequestDelegate Delegate { get; set; }
        public delegate void ProcessRequestDelegate(HttpContext context);

        public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
        {
            Delegate = ProcessRequest;
            return Delegate.BeginInvoke(context, cb, extraData);
        }

        public void EndProcessRequest(IAsyncResult result)
        {
            Delegate.EndInvoke(result);
        }

        #endregion

        #region IHttpHandler Members

        public bool IsReusable
        {
            get { return true; }
        } …
Run Code Online (Sandbox Code Playgroud)

.net memory-leaks ihttpasynchandler ihttphandler

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

如何将泛型类传递给Java中的方法?

假设我们有一个函数创建给定特定类的对象:

public static <T> T createObject(Class<T> generic) {
    try {
        return generic.newInstance();
    } catch (Exception ex) {
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

我们可以轻松地使用该函数来创建非泛型类型的实例.

public static void main(String[] args) {
    Foo x = createObject(Foo.class);
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用泛型类型执行相同的操作?

public static void main(String[] args) {
    ArrayList<Foo> x = createObject(ArrayList<Foo>.class); // compiler error
}
Run Code Online (Sandbox Code Playgroud)

java generics methods arguments dynamic

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

设置<sessionState cookieless ="AutoDetect"/>时,POST请求失败

考虑以下情况:

  • Web服务器正在运行.NET应用程序<sessionState cookieless="AutoDetect" />.
  • 客户端使用简单的HttpWebRequest(无cookie)将数据发布到它.

这个看似简单的案例导致重大失败.

由于.NET无法确定请求代理(HttpWebRequest)是否支持cookie,因此它会响应POST请求,并将302 Found重定向到同一位置:

  • AspxAutoDetectCookie响应中指定的cookie
  • AspxAutoDetectCookie在转发位置中命名的查询参数

然后请求代理请求新位置,这样HttpWebRequest做.当.NET AspxAutoDetectCookie在查询字符串中看到时,它知道这是一个重新请求,它可以通过查看命名的cookie AspxAutoDetectCookie是否在请求标头中来确定是否支持cookie .

问题是,大多数请求代理(Web浏览器HttpWebRequest)将302 Found视为303 See Other并将重新请求设置为GET,而不管原始HTTP方法如何!在初始POST请求中发送的任何数据都不会被转发.

正确的响应应该是307临时重定向,它不会更改请求方法.(对位置X的POST请求重定向到位置Y 的POST请求.)

有没有办法在.NET中更改此行为,以便POST请求不被销毁?

有关3xx重定向的信息

.net asp.net cookieless http-status-code-302 http-status-code-307

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

负载下的UDP组播性能

我有一个简单的C#应用​​程序,它在单接收器,单发送器方案中使用UDP多播.目标是在本地网络环境中尽可能快地传递消息.

我使用过SocketAsyncEventArgs/SendAsync/ReceiveAsync,BeginSend/BeginReceive,Threads/Send/Receive,并尝试过PGM和UDP多播.

每个实现尝试都可以正常工作,通过本地发送,本地接收,可以重复传递大约1000条消息.之后,性能开始呈指数下降.在1000条消息需要几百分之一秒的情况下,10,000条消息可能需要2-10秒.

有没有人有高性能UDP/PGM多播的经验?获得最大吞吐量的最佳设计是什么?

更新

现在,它只是一个本地运行的程序 - 一个带有1个发送器和1个接收器的应用程序.测试消息是4个字节.

c# udp multicast

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

查询字符串参数的顺序是否会影响缓存对象?

考虑一下......的请求

http://www.foo.com/bar?x=1&y=2
Run Code Online (Sandbox Code Playgroud)

......以及随后的......

http://www.foo.com/bar?y=2&x=1
Run Code Online (Sandbox Code Playgroud)

Web浏览器是否会将它们视为缓存目的?

browser caching query-string

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

在单个XQuery中为SQL Server删除多个节点

我有:

  1. 带有xml类型列的表(ID列表)
  2. 一个XML类型参数(也ID列表)

从列中删除与参数中的节点匹配的节点的最佳方法是什么,同时保持任何不匹配的节点不变?

例如

declare @table table (
    [column] xml
)

insert @table ([column]) values ('<r><i>1</i><i>2</i><i>3</i></r>')

declare @parameter xml
set @parameter = '<r><i>1</i><i>2</i></r>'

-- this is the problem
update @table set [column].modify('delete (//i *where text() matches @parameter*)')
Run Code Online (Sandbox Code Playgroud)

MSDN文档表明它应该是可能的(在SQL Server 2005中的XQuery简介中):

可以容易地修改该存储过程以接受包含一个或多个技能元素的XML片段,从而允许用户通过单个存储过程的调用来删除多个技能节点.

xml sql-server xpath xquery sql-server-2005

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

如何将内容附加到固定高度div的底部并让它溢出-y:滚动?

这个问题非常充分地解释了,但是这里有一些更详细的信息:

  1. 我有一个div固定的高度.
  2. 内容通过Ajax动态加载并附加到div.

添加的内容始终位于底部div.

2件内容(尚未滚动)

-------------------------div--
|                            |
|                            |
|                            |
|                            |
| some content (10:00 am)    |
|                            |
| some content (10:03 am)    |
------------------------------
Run Code Online (Sandbox Code Playgroud)

附加内容将现有内容推送到div开始在y方向上滚动.

5件内容(滚动1件)

-------------------------div--
| some content (10:03 am)   ^|
|                            |
| some content (10:04 am)   #|
|                           #|
| some content (10:07 am)   #|
|                           #|
| some content (10:09 am)   v|
------------------------------
Run Code Online (Sandbox Code Playgroud)

这可以用CSS完成吗?

编辑

必须在Internet Explorer中工作!

html css scroll

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

一些C#可选参数的可选规范

假设您有一个带有以下签名的方法:

public void SomeMethod(bool foo = false, bool bar = true) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

调用此方法时,有没有办法为bar和不指定值foo?它看起来像......

SomeMethod(_, false);
Run Code Online (Sandbox Code Playgroud)

......这会转化为......

SometMethod(false, false);
Run Code Online (Sandbox Code Playgroud)

......在编译时.这可能吗?

c# optional-parameters named-parameters c#-4.0

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

Java AppletRelaunch由于健康

我有一个Web应用程序,在其生命周期内创建/销毁几个小程序.在创建新applet时,JVM会定期启动第二个实例.applet共享各种内存结构,因此JVM重新启动会导致整个应用程序出现故障.

这是我唯一的线索.在控制台中,这是applet启动导致新JVM启动时所写的内容:

security: SSV validation:
    running: 1.7.0_51
    requested: null
    range: null
    javaVersionParam: null
    Rule Set version: null
network: Created version ID: 1.7.0.51
network: Created version ID: 1.7.0.51
security: continue with running version
basic: AppletRelaunch due to health
network: Created version ID: 1.9
network: Created version ID: 1.8
network: Created version ID: 1.7
network: Created version ID: 1.6
network: Created version ID: 1.5
network: Created version ID: 1.4
network: Created version ID: 1.3
basic: WARNING - specified JRE version, null is …
Run Code Online (Sandbox Code Playgroud)

java applet jvm jvm-hotspot

5
推荐指数
0
解决办法
713
查看次数

在TeamCity中禁用构建之前是否可以清除?

我们有一个TeamCity构建服务器和一个在不同地理区域托管的相当大的SVN存储库.每隔几天,TeamCity决定废弃SVN工作副本并执行干净的结账,这将为构建过程增加一个多小时.

是否可以禁用定期清洁?什么时候不能只对现有的工作副本进行SVN清理/更新?

svn teamcity build svn-checkout

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