问题列表 - 第19071页

c ++垃圾收集和调用析构函数

每帧我需要分配一些需要坚持到框架结束的数据.

目前,我正在从不同的内存池中分配数据,这允许我用帧计数标记它.在帧结束时,我遍历内存池并删除在特定帧中分配的内存.

我遇到的问题是,为了保持数据,我必须将它放在一个结构中:

struct FrameMemory
{
    uint32 frameIndex;
    bool allocatedType; //0 = new(), 1 = new[]
    void* pMemPtr;
}
Run Code Online (Sandbox Code Playgroud)

所以后来,当我开始释放内存时,它看起来像这样:

{
for(all blocks)
 if(block[i].frameIndex == targetIndex)
     if(block[i].allocatedType == 0)
          delete block[i].pMemPtr;
     else if (block[i].allocatedType ==1)
          delete[] block[i].pMemPtr;
}
Run Code Online (Sandbox Code Playgroud)

问题在于,因为我必须将指向内存的指针重载为void*,所以DELETE运算符不能正确地将内存作为其"本机基类型"删除.IE析构函数NEVER为对象调用.

我试图找到使用智能指针模板化对象的方法,但为了做到这一点,我必须将模板化的类重载为非模板化的基类型,这使得删除更加困难.

有没有人能解决这样的问题?

c++ garbage-collection

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

用于分布式系统的Java框架

我正在寻找一个库(或库的组合)来构建一个java分布式系统,由几个应用程序组成,通过几个成对连接(没有mapreduce)交换数据.目前我对现有的库进行了解释,我只能丢弃我发现的内容.这是我的要求:

  • 在运行时轻松发现系统(可能通过中央服务器/目录)
  • 轻量级和低延迟消息(无CORBA,RMI,SOAP等)
  • 分散的通信(没有像LINDA那样)
  • 易于使用和学习(没有JXTA)
  • 兼容GPL许可证(所以GPL,BSD等)

你有什么建议吗?提前致谢

java performance distributed

11
推荐指数
2
解决办法
2459
查看次数

Java套接字和丢弃的连接

检测套接字是否被丢弃的最合适方法是什么?或者是否确实发送了数据包?

我有一个库,可以通过Apple gatways(可在GitHub上获得)向Apple发送Apple推送通知.客户端需要打开套接字并发送每条消息的二进制表示; 但不幸的是,Apple没有回复任何确认.连接可以重复使用以发送多条消息.我正在使用简单的Java Socket连接.相关代码是:

Socket socket = socket();   // returns an reused open socket, or a new one
socket.getOutputStream().write(m.marshall());
socket.getOutputStream().flush();
logger.debug("Message \"{}\" sent", m);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,如果在发送消息时或之前删除了连接; Socket.getOutputStream().write()虽然成功完成了.我预计这是由于TCP窗口尚未用完.

有没有办法可以确定数据包是否实际进入网络?我尝试了以下两种解决方案:

  1. 插入socket.getInputStream().read()250ms超时的附加操作.这会强制在删除连接时失败的读取操作,否则会挂起250ms.

  2. 将TCP发送缓冲区大小(例如Socket.setSendBufferSize())设置为消息二进制大小.

这两种方法都有效,但它们会严重降低服务质量; 吞吐量最多从100条消息/秒到大约10条消息/秒.

有什么建议?

更新:

受到多个答案的质疑,质疑所描述的可能性.我构建了我所描述的行为的"单元"测试.查看Gist 273786上的单位案例.

两个单元测试都有两个线程,一个服务器和一个客户端.客户端发送数据时服务器关闭,而不会抛出IOException.这是主要方法:

public static void main(String[] args) throws Throwable {
    final int PORT = 8005;
    final int FIRST_BUF_SIZE = 5;

    final Throwable[] errors = new Throwable[1];
    final Semaphore serverClosing = new Semaphore(0);
    final Semaphore messageFlushed = …
Run Code Online (Sandbox Code Playgroud)

java sockets networking apple-push-notifications

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

HashMap:将arraylist设为一组键或值

我有两个arraylists A1,A2.A1的每个元素都是关键,A2的每个元素都是对应的值.所以我找到的解决方案是循环A1(A1和A2具有相同的大小),使hashmap.add(A1 [i],A2 [i]),但有没有办法直接发送键值对作为两个集?我想避免循环它会减慢我的代码..提前谢谢你!

java

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

Java中的布尔表达式评估顺序?

假设我有以下表达式

String myString = getStringFromSomeExternalSource();
if (myString != null && myString.trim().length() != 0) {
...
}
Run Code Online (Sandbox Code Playgroud)

Eclipse警告我,myString在布尔表达式的第二个短语中可能为null.但是,我知道有些编译器会在第一个条件失败时完全退出布尔表达式.这对Java来说是真的吗?或者评估顺序不保证?

java boolean-logic boolean-expression compiler-warnings

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

JQuery没有表现自己

当然这是jQuery,而不是我缺乏理解导致这个问题,但是为了防止它是我的无能,有人可以告诉我如何在这个标签中返回文本"Acme"吗?

<div class="grid-56" id="1005" style="border:solid 1px lightgray;">
    <div class="grid-20 bold">
        <a href="#" class="id_select_company" id="company_name_dialog">
            Acme
        </a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这似乎不起作用!

var company_name = $("#" + id).children($("#company_name_dialog")).html();
Run Code Online (Sandbox Code Playgroud)

它产生

<a href="#" class="id_select_company" id="company_name_dialog">
    Acme
</a>
Run Code Online (Sandbox Code Playgroud)

我不想要锚标签,只需要文本.

jquery css-selectors

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

为Zend_Soap服务指定SOAP标头

我有一个通常直接的Web服务,我已经编写过(从同一服务的Java实现转换代码到ZF并尝试尽可能保持相同的wsdl结构).该服务加载PHP类,而不是单个函数.PHP类包含三个不同的函数.

一切似乎都运行得很好,除了我似乎无法弄清楚如何指定给定的函数参数应作为SOAP标头传递.我在服务器上下文中没有看到任何SOAP标头,只讨论了如何将客户端的头参数传递给服务器.

除了将在SOAP主体中发送并在docblock中详细说明的函数的标准参数之外,我还想指定将在SOAP头中发送的两个参数(用户名和密码).

我必须假设这是可能的,但是无法在网上找到任何东西,也没有对Zend论坛上的类似帖子做出任何回应.是否可以在docblock区域中添加一些内容以将参数指定为标题(可能与使用WebParam的方式类似?)?任何有关如何完成这项工作的建议/示例将不胜感激!

php soap zend-framework

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

存储二进制或图像文件的最佳方式

存储二进制文件图像文件的最佳方法是什么?

  1. 数据库系统
  2. 文件系统

你能解释一下,为什么?

database binary upload store image

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

jqmodal滚动可能

有没有办法让我的jqModal可滚动?我正在通过ajax加载内容,如果这有帮助吗?

我尝试添加溢出:滚动和滚动条显示但它被禁用并显示整个内容.

有任何想法吗?

谢谢,rodchar

jquery jqmodal

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

Dialogs/AlertDialogs:如何在对话框启动时"阻止执行"(.NET风格)

来自.NET环境我现在正在寻找了解Dialog如何在Android中运行的方法.

在.NET中,调用MessageBox.Show(...)创建并显示弹出对话框.在对Show的调用中,我可以指定弹出窗口中应该有哪些按钮,例如:

DialogResult myDialogResult = MessageBox.Show("My text here", "My caption here", MessageBoxButtons.YesNoCancel);
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,当在弹出窗口中按下按钮时,对Show的调用将返回一个DialogResult,通知我单击了哪个按钮.请注意,在.NET中,执行将在调用Show(...)的行中停止,因此它可以在按下按钮时返回值.

如果我在上面的例子中按"否",则myDialogResult将等于

myDialogResult == DialogResult.No
Run Code Online (Sandbox Code Playgroud)

由于我发现使用/创建弹出窗口的.NET方式非常简单直观,我想在Android中创建弹出窗口的方式.

所以,问题是,是否有人知道如何"停止执行",如MessageBox.Show,然后每按一次按钮返回一个值(对话框消失)?

问候


编辑1: 更清楚一点:

我需要执行停止并等到用户选择了一个按钮来单击弹出窗口.显示对话框的调用后面的代码取决于在对话框中单击的按钮.

这就是为什么我不能使用Erich和Alex所建议的,因为在下面建议的onClick方法中编写代码是行不通的.原因是我无法继续"正常执行".让我举一个例子:

让我举一个例子:

int nextStep = 0; // this variable will not be reached from within the onClick-methods

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Hello!")
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                nextStep = 1; // *** COMPILER ERROR!! ***
            }
        })
        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int …
Run Code Online (Sandbox Code Playgroud)

android

69
推荐指数
7
解决办法
10万
查看次数