问题列表 - 第17978页

自旋锁是内存分配器的不错选择吗?

我已经向D编程语言运行时的维护者建议了几次内存分配器/垃圾收集器应该使用自旋锁而不是常规的OS关键部分.这并没有真正流行起来.以下是我认为自旋锁更好的原因:

  1. 至少在我所做的综合基准测试中,当存在内存分配器/ GC锁争用时,它比OS关键部分快几倍.编辑:根据经验,使用自旋锁在单核环境中甚至没有可测量的开销,可能是因为锁需要在内存分配器中保持如此短的时间.
  2. 内存分配和类似操作通常只需要一小部分时间片,甚至是上下文切换所花费的一小部分时间,这使得在争用情况下上下文切换变得愚蠢.
  3. 无论如何,有问题的实现中的垃圾收集会阻止世界.在收集过程中不会有任何旋转.

有没有充分的理由不在内存分配器/垃圾收集器实现中使用自旋锁?

concurrency garbage-collection mutex memory-management d

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

C#WPF - 自定义大小调整

我需要使用WindowStyle.None,allowsTransparency = true等自定义窗口.

一个要求是自定义ResizeGrip控件.

我有这个使用ResizeMode.CanResizeWithGrip,从这里找到的开源项目中获取一些代码:Fluid Kit

如果您有兴趣,请参阅"GlassWindow"课程.

为了完成这项工作,我在ResizeGrip的MouseLeftButtonDown事件上调用以下代码:

NativeMethods.SendMessage(_interopHelper.Handle, WM.SYSCOMMAND, (IntPtr)((int)SC.SIZE + (int)sizingAction), IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

SizingAction定义为:

    enum SizingAction
    {
        West = 1,
        East = 2,
        North = 3,
        NorthWest = 4,
        NorthEast = 5,
        South = 6,
        SouthWest = 7,
        SouthEast = 8,
    }
Run Code Online (Sandbox Code Playgroud)

这一切都有效,但是当你通过SouthWest(或任何左侧或顶部)调整大小时,我会发现一些奇怪的东西.您可以看到WPF窗口重绘大小和位置更改(从顶部或左侧调整大小时始终会发生这种情况).

如果您在任何具有默认窗口样式和调整大小模式的窗口上尝试此操作,它就可以正常工作.除了XP之外,你必须拥有经典主题.

有没有人知道使用它的替代品?还是一种解决方法?

我还在MSDN论坛上发布了一些信息,这里是:MSDN论坛

PS - 如果有人想通过在示例项目中设置StartupUri ="GlassWindow/Window1.xaml"来检查Fluid Kit并运行GlassWindow示例,则可以直接看到此行为.

编辑:微软告诉我发送产品建议......

如果有人遇到类似的问题,链接就在这里:

产品建议

如果您想亲自尝试,我也在这里举个例子:

样品

c# wpf winapi resize

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

德尔福儿童班

我认为这是一个愚蠢的问题.但是......当在Delphi中声明一个其他类的子类时,孩子们是否直接得到了父母的方法?解释:名为'P'的类是名为'C'的类的父类,'P'类有一个名为'Mth'的方法.是否可以调用'C.Mth'或者我在'C'的声明中注意到某些内容(可能是构造函数?)

问题与变量相同..

我希望足够清楚......非常感谢回复......

delphi parent-child

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

简单的XML反序列化

我正在尝试使用Simple XML序列化程序.我对XML-> Java的反序列化更感兴趣.这是我的代码作为单元测试:

import java.io.StringReader;
import java.io.StringWriter;

import junit.framework.TestCase;

import org.simpleframework.xml.Attribute;
import org.simpleframework.xml.Root;
import org.simpleframework.xml.Serializer;
import org.simpleframework.xml.core.Persister;

public class SimpleTest extends TestCase {
    public void testWriting() throws Exception {
        StringWriter writer = new StringWriter();
        Address address = new Address("1234 Main Street", "San Francisco", "CA");
        Serializer serializer = new Persister();

        serializer.write(address, writer);
        System.out.println("Wrote: " + writer.getBuffer());
    }

    public void testReading() throws Exception {
        String input = "<address street='1234 Main Street' city='San Francisco' state='CA'/>";
        Serializer serializer = new Persister();
        System.out.println("Read …
Run Code Online (Sandbox Code Playgroud)

java xml serialization xml-serialization

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

如何比较PHP与Perl的性能?

虽然两者都是解释型语言但存在差异或?

两种语言的性能差异是什么?即使Perl比PHP快,但由于PHP的简单性,最多会选择PHP.有人有这方面的经验吗?

php perl performance

2
推荐指数
3
解决办法
6554
查看次数

取消引用访问元素的向量指针

如果我在C++中有一个指向向量的指针:

vector<int>* vecPtr;
Run Code Online (Sandbox Code Playgroud)

我想访问向量的一个元素,然后我可以通过去除向量来做到这一点:

int a = (*vecPtr)[i];
Run Code Online (Sandbox Code Playgroud)

但是这个解除引用会不会在堆栈上创建我的矢量副本?假设向量存储10000个int,是否会通过解除引用来复制vecPtr 10000 int?

谢谢!

c++ vector dereference

54
推荐指数
2
解决办法
7万
查看次数

检索文件中的总行数

有人能告诉我如何用编程语言C获取文本文件中的总行数吗?

c text file

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

如何将int映射到C/C++中的相应字符串

我有20位数字,我想将它们与字符串相关联.除了使用switch case语句实现这一点之外,还有更快的方法吗?

我需要将int转换为相应的字符串,并且数字不一定是打包的.一些代码Qt也可能有用吗?

示例:以下数字和字符串相互关联,

1:   "Request System Info"

2:   "Change System Info"

10:  "Unkown Error"
Run Code Online (Sandbox Code Playgroud)

c c++ qt

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

不能将HTML元素放在flash上

无论我尝试什么z-index值,我都不能在这个flash动画上覆盖我的html div(或img)元素(见左上角):

http://www.resident.co.il/aspx/places.aspx?t=4&a=1

有任何想法吗 ?

flash z-index

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

WSDL问题

我最近一直在研究符合ACORD P&C的Web服务,并且遇到了一些麻烦,因为wsimport错误地说它无法解析其中一个xsd文件.错误消息是:

[ERROR]         Unable to parse "D:\projects\DICACORD\DicAcordQuoteRq.xsd" : Illegal character in opaque part at index 2: D:\projects\DICACORD\DicAcordQuoteRq.xsd
Run Code Online (Sandbox Code Playgroud)

我创建的模式基于ACORD P&C模式(超过23k行),我只包含了公司需要使用的必需元素.我使用XMLSpy创建了模式,根据其验证,模式是有效的,但是当我尝试在netbeans 6.8中创建Web服务时,我收到上面的错误消息.

模式在我的开发机器上,根据我在netbeans论坛上可以找到的内容,netbeans将wsdl复制到项目内部的一个目录中,这样当你将它从开发转移到生产时,一切都仍然像它应该的那样工作.

wsdl如下

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2010 -->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="discoveryinsurance.com/schemas" xmlns:ns="discoveryinsurance.com/schemas/acordRq" xmlns:ns1="discoveryinsurance.com/schemas/acordRs" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="discoveryinsurance.com/schemas">
<wsdl:import namespace="discoveryinsurance.com/schemas/acordRq" location="D:\projects\DICACORD\DicAcordQuoteRq.xsd"/>
<wsdl:import namespace="discoveryinsurance.com/schemas/acordRs" location="D:\projects\DICACORD\DicAcordQuoteRs.xsd"/>
<wsdl:types>
    <xs:schema targetNamespace="discoveryinsurance.com/schemas" elementFormDefault="qualified"/>
</wsdl:types>
<wsdl:message name="NewMessageRequest">
    <wsdl:part name="parameter" element="ns:ACORD"/>
</wsdl:message>
<wsdl:message name="NewMessageResponse">
    <wsdl:part name="parameter" element="ns1:ACORD"/>
</wsdl:message>
<wsdl:portType name="QuotePort">
    <wsdl:operation name="QuoteRequest">
        <wsdl:input name="quoteInput" message="tns:NewMessageRequest"/>
        <wsdl:output name="quoteOutput" message="tns:NewMessageResponse"/>
    </wsdl:operation>
</wsdl:portType>
<wsdl:binding …
Run Code Online (Sandbox Code Playgroud)

java wsdl web-services netbeans6.8

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