标签: allocation

Java中的逃逸分析

据我所知,JVM使用转义分析进行一些性能优化,如锁定粗化和锁定省略.我很感兴趣,如果JVM有可能决定使用转义分析在堆栈上分配任何特定对象.

一些资源让我觉得我是对的.有JVM实际上做到了吗?

java stack allocation escape-analysis

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

内存分配/解除分配?

我最近一直关注内存分配,对基础知识我有点困惑.我无法绕过简单的东西.分配内存意味着什么?怎么了?我很感激这些问题的答案:

  1. 正在分配的"记忆"在哪里?
  2. 这个"记忆"是什么?阵列中的空间?或者是其他东西?
  3. 当这个"记忆"被分配时会发生什么?
  4. 当内存被解除分配时会发生什么?
  5. 如果有人可以回答malloc在这些C++行中所做的事情,它也会对我有所帮助:

    char* x; 
    x = (char*) malloc (8);
    
    Run Code Online (Sandbox Code Playgroud)

谢谢.

c++ memory memory-management allocation

36
推荐指数
3
解决办法
7万
查看次数

用于C/C++的多线程内存分配器

我目前有大量的多线程服务器应用程序,我正在四处寻找一个好的多线程内存分配器.

到目前为止,我被撕裂了:

  • 太阳的呃
  • 谷歌的tcmalloc
  • 英特尔的线程构建块分配器
  • Emery Berger的囤积

从我发现的囤积可能是最快的,但我在今天之前没有听说过,所以我怀疑它是否真的像它看起来那么好.任何人都有尝试这些分配器的个人经验?

c c++ memory malloc allocation

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

在什么情况下我应该在C++中使用memcpy而不是标准运算符?

我什么时候可以memcpy使用它获得更好的性能?如何使用它?例如:

float a[3]; float b[3];
Run Code Online (Sandbox Code Playgroud)

是代码:

memcpy(a, b, 3*sizeof(float));
Run Code Online (Sandbox Code Playgroud)

比这

a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
Run Code Online (Sandbox Code Playgroud)

c++ memory performance allocation copying

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

使用SocketAsyncEventArgs时是否可以删除ExecutionContext和Thread分配?

如果您分析使用的简单客户端应用程序SocketAsyncEventArgs,您将注意到ThreadExecutionContext分配.

分配的来源是SocketAsyncEventArgs.StartOperationCommon使用创建ExecutionContext的副本ExecutionContext.CreateCopy().

ExecutionContext.SuppressFlow似乎是抑制这种分配的好方法.但是,此方法本身将在新线程中运行时生成分配.

我该如何避免这些分配?

c# sockets multithreading allocation asyncsocket

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

什么是NSPathStore2?

我所知道的只是:

  • 它是私人的
  • 它创建了某种原因导致字符串尝试做与路径相关的事情

我的意思是,如果它们是私有的,我的应用程序仍告诉我NSPathStore2正在干扰,我需要知道原因.我只想了解为什么NSPathStore2的发布会让我的应用程序崩溃.

debugging xcode allocation nsstring

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

我可以在MacBook Pro上分配的最大内存量是多少?

我试图弄清楚在分配失败之前我可以分配多少内存.

这个简单的C++代码分配一个缓冲区(大小为1024字节),分配缓冲区的最后五个字符,报告,然后删除缓冲区.然后它将缓冲区的大小加倍并重复直到它失败.

除非我遗漏了某些东西,否则代码能够在MacBook Pro出现故障之前分配高达65TB的内存.这甚至可能吗?它如何分配比我在机器上更多的内存?我一定很遗憾.

int main(int argc, char *argv[])
{
        long long size=1024;
        long cnt=0;
        while (true)
        {
                char *buffer = new char[size];
                // Assume the alloc succeeded. We are looking for the failure after all.

                // Try to write to the allocated memory, may fail
                buffer[size-5] = 'T';
                buffer[size-4] = 'e';
                buffer[size-3] = 's';
                buffer[size-2] = 't';
                buffer[size-1] = '\0';

                // report
                if (cnt<10)
                        cout << "size[" << cnt << "]: " << (size/1024.) << "Kb ";
                else if …
Run Code Online (Sandbox Code Playgroud)

c++ memory allocation

25
推荐指数
3
解决办法
2116
查看次数

23
推荐指数
3
解决办法
9932
查看次数

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

为什么`box :: new`不返回`Option`或`Result`?

我不明白为什么Box::new不退还OptionResult.

分配可能会失败,因为内存不是无限制的,或者其他可能发生的事情; 这种情况下的行为是什么?我找不到任何有关它的信息.

runtime-error allocation rust

22
推荐指数
3
解决办法
1962
查看次数