小编sam*_*kar的帖子

C++中的堆栈或堆中的全局内存管理?

如果我在C++应用程序中全局声明数据结构,它是否会消耗堆栈内存或堆内存?

例如

struct AAA
{

.../.../.
../../..
}arr[59652323];
Run Code Online (Sandbox Code Playgroud)

c++ stack memory-management

70
推荐指数
6
解决办法
6万
查看次数

XML文件的大分割

我有一个15 GB的XML文件,我想把它拆分.它有大约3亿行.它没有任何相互依赖的顶级节点.是否有任何工具可供我使用?

xml

16
推荐指数
4
解决办法
6万
查看次数

将JSON字符串转换为C#字典

我有一个JSON字符串

{
  "Date":"21/11/2010"
  "name": "TEST"
  "place":"xyz"
}
Run Code Online (Sandbox Code Playgroud)

我想在不使用第三方库的情况下将其转换为C#字典

c# json

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

无法从JSON字符串构造Object

我从我的C#客户端传递一个简单的JSON字符串到我的webservice.以下是我发送的字符串

"{\"name \":\"S1 \"}"

在服务端,我使用以下代码

class DataDC
{

    public String attr { get; set; }
    public String attrVal { get; set; }

}

JavaScriptSerializer json_serializer = new JavaScriptSerializer();
DataDC dc = (DataDC)json_serializer.DeserializeObject(str);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

"无法将'System.Collections.Generic.Dictionary`2 [System.String,System.Object]'类型的对象强制转换为'DataDC'."

c# json

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

递归导致内存不足

我有2 GB的RAM.我们有一个执行导出/导入操作的应用程序.我们有一个递归函数,它有一个类型为Set的局部变量,它会在每次迭代时继续填充.这个集合不断增长,一度我们的内存耗尽.

是否有可以最佳地使用内存的替代数据结构?

这是粗略的代码

GetObjectsForExportImpl(long lExportOptions, __int64 numIdProject, XExportSets
     &exportSets, long lClientId, CComPtr<IEPIPDServer> ptrIPDServer,FILE *fp)
{
    XExportSets exportLocal;   //Thats a structure containing the Set
    QueryObjectsForExport(lExportOptions, numIdProject, exportLocal,
         lClientId, ptrIPDServer);
    SetIDs::iterator it = exportLocal.setShared.begin();

    for (; it != exportLocal.setShared.end(); ++it)
    {
         //recursive call
         pExportObject->GetObjectsForExportImpl(lExportOptions,
             numIdProject, exportSets, lClientId, ptrIPDServer,fp);
    }
}
Run Code Online (Sandbox Code Playgroud)

memory recursion

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

包含std类库时的歧义

我有Visual Studio 2005.我的一个头文件有一个枚举

typedef enum {scalar,array,set} increment;

当我尝试包含头文件时,我得到了"set"的歧义错误.我在这个cpp文件中使用std :: set.问题是编译器无法区分std :: set和枚举中的set.

在不声明任何新命名空间的情况下解决此歧义的任何建议

c++

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

记忆消耗?

我有一段代码在哪里

for ( ; ; )
{

  char *buf;

  /* Some code */
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是代码每次循环循环时都会分配内存.我的意思是当它循环时,将为指针保留至少4个字节.

c memory consumption

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

注册变量

我有一个涉及很多递归的C++代码.我正在考虑为我的变量使用寄存器类.你认为通过这样做我将节省堆栈内存并将提高性能

谢谢

萨米尔

c++ recursion

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

XML文件的长度

我有一个大小为31 GB的XML文件.我需要找到该文件中的总行数.我知道命令wc -l会给我一样的.但是,执行此操作需要很长时间.有没有更快的机制来查找大文件中的行数?

unix size file

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

加载大量XML文件时的内存管理

我们有一个从XML导入对象的应用程序.XML大约为15 GB.应用程序总是开始耗尽内存.我们试图在操作之间释放内存,但这会导致性能下降.即完成导入操作需要更多时间.CPU利用率达到100%

该应用程序是用C++编写的.

经常打电话free()会导致性能问题吗?


来自OP的评论推荐:在expat中使用的解析器,这是一个占用空间非常小的SAX解析器,以及可自定义的内存管理.

c++ xml memory memory-management

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

在JavaScript中定义队列数据结构

我只是想学习JavaScript.我想设计一个采用以下格式的队列:

[{(0,0),0}], [{(0,1),1}], [{(0,2),2}]
Run Code Online (Sandbox Code Playgroud)

所以我尝试用以下方式定义队列,但显然它不正确

var queue = [{}] ;
Run Code Online (Sandbox Code Playgroud)

javascript

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

矢量push_back over std :: copy

我有一个函数,它有一个无序集作为参数.由于我使用的是openmp,我将这个无序集转换为vector.我使用std :: copy进行此转换.

//pseudo code
func( std::unorderedset s1)
begin
    vector v1;
    std::copy(s1.begin,s2.end,std::back_inserter(v1.end());
#openmp scope
    for( i = 0 ; i < v1.size(); i++ )
    {
         //accessing v1(i)
    }
end
Run Code Online (Sandbox Code Playgroud)

但是我觉得std :: copy是一项代价高昂的操作.所以我认为,如果我创建一个类变量向量并且我继续填充这个向量,当我更新我的集合时,我可以完全避免这个std :: copy操作.由于向量的push_back操作的时间复杂度是分摊的O(1).你有什么建议?

c++ vector openmp push-back

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

将递归函数转换为非递归函数

我只是想知道,是否可以将此递归函数转换为非递归函数

unsigned Parser::Not(unsigned eff)
{
  if (eff == 0) return 1;

  if (eff == 1) return 0;

  Node rn(ri.get_key(eff));

  rn.t_branch_id = Not(rn.t_branch_id);
  rn.f_branch_id = Not(rn.f_branch_id);

  return CodeRuleNode(rn);
}
Run Code Online (Sandbox Code Playgroud)

recursion

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

标签 统计

c++ ×5

memory ×3

recursion ×3

c# ×2

json ×2

memory-management ×2

xml ×2

c ×1

consumption ×1

file ×1

javascript ×1

openmp ×1

push-back ×1

size ×1

stack ×1

unix ×1

vector ×1