小编jan*_*isz的帖子

Java使用的内存远远多于使用-Xmx分配的内存

我有一个项目,我正在编写一个类,其中教授说我们不允许使用超过200米我用-Xmx50m限制堆栈内存到50米(只是为了绝对肯定)但是根据顶部,它仍然使用300米

我尝试运行Eclipse Memory Analyzer,它只报告26米

这可能都是堆栈上的内存吗?我很确定我从不会超过大约300个方法调用深度(是的,它是一个递归DFS搜索),所以这意味着每个堆栈帧几乎用完了看起来很难相信的兆字节.

该程序是单线程的.有谁知道我可能减少内存使用的任何其他地方?另外,如何检查/限制堆栈使用的内存量?

更新:我现在使用以下JVM选项没有效果(根据顶部仍然约300米): -Xss104k -Xms40m -Xmx40m -XX:MaxPermSize=1k

另一个更新:实际上,如果我让它运行一点点(带有所有这些选项)大约一半的时间它会在4或5秒后突然下降到150米(另一半它不会下降).这真的很奇怪的是我的程序没有随机(并且正如我所说的那样是单线程)所以没有理由它在不同的运行中表现不同

它可能与我正在使用的JVM有关吗?

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.3) (6b27-1.12.3-0ubuntu1~10.04)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

根据java -h,默认的JVM是-server.我尝试添加-cacao和现在(所有其他选项)它只有59米.所以我想这解决了我的问题.谁能解释为什么这是必要的?另外,我应该知道有什么缺点吗?

还有一个更新:与服务器相比,可可真的很慢.这是一个糟糕的选择

java memory stack memory-management

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

了解GCC 5的_GLIBCXX_USE_CXX11_ABI或新的ABI

https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

我在GCC 5上使用std :: string遇到了崩溃/ valgrind问题.上面的链接提示ABI从GCC 5.x开始发生了变化.libstd ++的新默认ABI是C++ 11/14 ...它与旧的ABI不兼容.有一种方法可以使用define选择较旧的ABI.

我试图了解ABI之间有什么区别,但没有找到详细信息.我想帮助理解:

  1. 需要修复std :: string的哪些问题才能与新的ABI兼容?他们是否与写字有关?
  2. 这些变化是否会破坏旧的ABI?
  3. 让_GLIBCXX_USE_CXX11_ABI工作的任何提示?

关于我遇到的问题的更多细节(https://github.com/YasserAsmi/jvar/issues/21)该项目在GCC 4.8和Clang中运行良好.使用GCC,相同的代码拒绝运行:

x_misc(33112,0x7fff728c2000) malloc: *** error for object 0x7fd639c034cc:    pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
Run Code Online (Sandbox Code Playgroud)

这是部分Valgrind输出:

==33027== Invalid read of size 1
==33027==    at 0x1006F78BA: _platform_memmove$VARIANT$Nehalem (in /usr/lib/system/libsystem_platform.dylib)
==33027==    by 0x100009388: jvar::Variant::toString[abi:cxx11]() const (in bin/ex_misc)
==33027==    by 0x1000023A7: bugreport() (in bin/ex_misc)
==33027==    by 0x1000133B8: main (in bin/ex_misc)
Run Code Online (Sandbox Code Playgroud)

该项目使用std :: string并具有一些自定义内存管理.它正在使用放置新构造函数等进行一些非典型但有效的操作.我试图更好地理解API对哪种代码的影响以及如何修复它 - …

c++ gcc c++11

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

无法验证装配数据; 加载此程序集时必须提供授权密钥

我正在测试Unity中的InteractiveConsole示例.我做了官方教程中描述的一些配置.经过一些设置后,我得到了第7:运行我们的示例代码.

但是,我收到以下错误:

无法验证装配数据; 加载此程序集时必须提供授权密钥.UnityEngine.Security:LoadAndVerifyAssembly(Byte [])c__Iterator1:MoveNext()(在Assets/Facebook/Scripts/FB.cs:326)

无法从https://integrated-plugin-canvas-rsrc.fbsbx.com/rsrc/unity/lib/sdk_4.0/CanvasFacebook.dll安全地加载程序集 UnityEngine.Debug:LogError(Object)FbDebug:Error(String)c__Iterator1 :MoveNext()(在Assets/Facebook/Scripts/FB.cs:329)

不知道该怎么办.有任何想法吗?

c# unity-game-engine facebook-unity-sdk

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


Mesos真实世界的用例

我想弄清楚使用Mesos的原因是什么.你能想出其他的吗?

  1. 在同一个集群中运行所有服务而不是专用集群(您的最终应用程序+ DevOps,如Jenkins)
  2. 在同一个集群(开发,测试,生产)中运行不同的成熟度应用程序,还是可行的?Kubernetes与Labels有类似的方法
  3. Mesos通过简化部署,统一API,资源分箱包装,简化了传统分布式应用程序(如Hadoop)的使用

mesos

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

Javascript:检查周围的表格单元格

我正在制作名为Dots and Boxes的游戏.

网格上有一堆点:

在此输入图像描述

<table>
    <tr>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
        <td class="box" onclick="fillBox(this)"></td>
        <td class="vLine" onclick="addLine(this)"></td>
    </tr>
    <tr>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
        <td class="hLine" onclick="addLine(this)"></td>
        <td class="gap"></td>
    </tr> …
Run Code Online (Sandbox Code Playgroud)

html javascript css

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

如何在可分离编译后将主机代码与静态CUDA库链接?

好吧,我有一个非常令人不安的CUDA 5.0问题,关于如何正确地链接事物.我真的很感激任何帮助!

使用CUDA 5.0的可分离编译功能,我生成了一个静态库(*.a).当通过nvcc运行时,这与其他*.cu文件很好地链接,我已经多次这样做了.

我现在想要获取一个*.cpp文件,并使用g ++或其他方法将其链接到此静态库中的主机代码,但不是nvcc.如果我尝试这个,我会遇到编译错误

对__cudaRegisterLinkedBinary的未定义引用

我正在使用两者-lcuda并且据-lcudart我所知,库的顺序正确(含义-lmylib -lcuda -lcudart).我不认为这是一个问题.也许我错了,但我觉得我错过了一步,我需要对我的静态库(设备链接?)做一些其他事情才能使用g ++.

我错过了至关重要的事吗?这甚至可能吗?

奖金问题:我希望最终结果是一个动态库.我怎样才能做到这一点?

cuda g++ dynamic-linking nvcc static-linking

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

遇到cuda不可纠正的ECC错误

我的环境是

  • Windows 7 x64
  • Matlab 2012a x64
  • Cuda SDK 4.2
  • 特斯拉C2050 GPU

我无法弄清楚为什么我的GPU因遇到"无法纠正的ECC错误"而崩溃.仅当我使用512个或更多线程时才会发生此错误.我不能发布内核,但我会尝试描述它的作用.

通常,内核负责多个参数,并产生由所述螺纹的尺寸,M和其他数定义2个复杂matricies,N.,返回的矩阵将是大小为M×N的.典型配置为512x512,但每个数字都是独立的,可以向上或向下变化.当数字为256x256时,内核可以工作.

每个线程(内核)基于线程id(即大小为999xM)从2D阵列中提取999大小的向量,然后循环通过输出矩阵的行(0 ... N-1)进行计算.计算许多中间参数,仅使用+ - * /运算符中的pow,sin和cos .要计算其中一个输出矩阵,需要执行一个额外的循环来总结先前提取的999向量的贡献.此循环执行一些中间计算以确定允许贡献的值的范围.然后通过由计算的分数值的cos和正弦值确定的因子来缩放贡献.这是它崩溃的地方.如果我坚持使用常量值或1.0或任何其他值,内核执行没有问题.但是,当只包含一个调用(cos或sine)时,内核崩溃.

一些伪代码如下:

kernel()
{

/* Extract 999 vector from 2D array 999xM - one 999 vector for each thread. */
for (int i = 0; i < 999; i++)
{
    .....
}

/* Cycle through the 2nd dimension of the output matricies */
for (int j = 0; j < N; j++)
{
    /* Calculate some intermediate variables …
Run Code Online (Sandbox Code Playgroud)

crash cuda

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

端口和服务端口之间的区别?

在探索马拉松REST API时,我遇到了以下API调用给出的信息(JSON输出)中定义的两个端口号(端口和服务端口)
curl http://x.y.z.w:8080/v2/tasks | python -m json.tool | less
- 示例输出如下:

{
  "tasks":[
    {
      "appId":"/test",
      "host":"172.20.75.145",
      "id":"test.1fc922a9-f4c8-11e5-8bff-005056a76a7f",
      "ipAddresses":[

      ],
      "ports":[
        31313
      ],
      "servicePorts":[
        10000
      ],
      "slaveId":"2130f59b-7289-40eb-b24d-72f0c6fe94c8-S1",
      "stagedAt":"2016-03-28T09:33:26.859Z",
      "startedAt":"2016-03-28T09:33:26.936Z",
      "version":"2016-03-28T09:33:26.800Z"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

有没有人知道端口和servicePorts之间的区别?还请添加更多信息.

port marathon mesos

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

Nancy 500服务器错误与dotnetcore和kestrel

我正在尝试使用NancyFX(clint-eastwood)dotnetcore1.1dotnet-cli 1.0.0-rc4-004771.我目前的项目结构是 -

CustomBootstrapper.cs
HomeModule.cs
index.sshtml
nancyapp.csproj
Program.cs
Startup.cs
Run Code Online (Sandbox Code Playgroud)

代码是 -

nancyapp.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Owin">
      <Version>1.1.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel">
      <Version>1.1.0</Version>
    </PackageReference>
    <PackageReference Include="Nancy">
      <Version>2.0.0-clinteastwood</Version>
    </PackageReference>
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

Program.cs中

using System.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;

namespace nancyapp
{
    class Program
    {
        static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Startup.cs

using Microsoft.AspNetCore.Builder;
using Nancy.Owin;

namespace nancyapp
{
    public class Startup
    {
        public …
Run Code Online (Sandbox Code Playgroud)

nancy .net-core dotnet-cli

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