小编Sea*_*ean的帖子

垃圾收集不会减少当前内存使用量 - 在发布模式下.为什么?

我构建了一个快速程序,需要遍历一个巨大的日志文件(几百万条记录)并从内部找到各种各样的零碎.由于数据量如此巨大,我一直很想看看我的Windows任务管理器性能选项卡,看看有多少CPU和内存被使用.

程序成功获得结果后,CPU使用率明显下降.但是在看到我的内存使用率在执行期间缓慢上升到几千兆字节后,它保持不变.

我试图在我的函数结束时调用GC.Collect(),尝试将事物设置为null,尝试在发布模式下运行程序(我听说GC.Collect()可能无法正常工作,因为我希望它在调试中模式).

如果我关闭程序,内存使用量会下降,但我无法弄清楚为什么在应用程序生命周期内无法清理我的应用程序.在一天结束时,这是一个一次性的应用程序,但我只是想知道我错过了什么,即什么是持有所有这些记忆.

思考?

.net garbage-collection

4
推荐指数
5
解决办法
7527
查看次数

Smalltalk中的关联集合和字典之间有什么区别?

| dict |
dict := #{'foo'->'brown'. 'bar'->'yellow'.
          'qix'->'white'. 'baz'->'red'. 'flub'->'green'} asDictionary.
dict at: 'qix'
Run Code Online (Sandbox Code Playgroud)

如果我PrintIt,我得到'白色'.如果我删除'asDictionary',我仍然会'白'.字典给了我一些关联集合不是什么?

dictionary smalltalk amber-smalltalk

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

System.Drawing.Graphics 中的 IntPtr.Zero 是什么意思

我需要在下面的函数中获得 IntPtr.Zero 的确切含义。我使用此函数将 word 文档文本范围位置像素值转换为 WPF 单位值。

Graphics g = Graphics.FromHwnd(IntPtr.Zero)
Run Code Online (Sandbox Code Playgroud)

这通常说通过句柄,但我没有得到它。

.net c# winapi intptr word-addins

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

如何处理Kotlin的空座位?

在java中我们可以做到以下

class A{
  int id;
  String name;

  public A(){}
  public A(int id, String name){
    this.id = id;
    this.name = name;
  }
  // getter/ setter
}
Run Code Online (Sandbox Code Playgroud)

然后我可以创建一个新的Object并获得如下的json

A a= new A()
a.setName("test")

System.out.println(new Gson().toJson(a))
Run Code Online (Sandbox Code Playgroud)

这给了我结果

{"name":"test"}
Run Code Online (Sandbox Code Playgroud)

在kotlin我怎么能得到这个?

我面临的问题是kotlin说原始类型必须被初始化.因此,在JSON我得到两个idname; 这是我不想要的

那怎么办呢???

json gson kotlin

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

基于范围的循环:自动更改意味着在C++ 11中

我试图在C++ 11中制作像这样的基于范围的lopp:

std::vector<Satellite> Satellites; // Class member
//...

int number = 1;
for(auto sat : this->Satellites) {
    sat.setNumber(number++);
}
Run Code Online (Sandbox Code Playgroud)

而且我收到了这个警告:

'auto'改变了C++ 11中的含义; 请删除它[-Wc ++ 0x-compat]

当然我可以坚持for(Satellite sat : this->Satellites),但我试图测试auto关键字.

我曾经读过使用C++ 11可以使用auto,但是最近我发现自从C++ 0x以来它已经改变了(或者看起来它已经改变了!):

关键字auto不是新的; 它实际上可以追溯到ANSI C之前的时代.但是,C++ 11改变了它的含义; auto不再指定具有自动存储类型的对象.相反,它声明了一个对象,其类型可以从其初始化器中推导出来.从C++ 11中删除了auto的旧含义以避免混淆.

那么:我能用这样的C++ 11和我的问题是在IDE(Eclipse CDT Juno),或者我应该以不同的方式使用它(或者根本不删除auto关键字)?

c++ auto c++11

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

Lambda函数,分段故障防止

我有一个指向对象的指针,我传递给lambda函数.因为lambda函数在初始方法调用之后被调用1秒,所以该对象有时不再有效,从而导致分段错误.

在使用它之前,如何验证该项在lambda函数中是否仍然有效?

这是我使用lambda函数的方法的样子:

void myTab::myMethod(QStandardItem *item)
{
    QColor blue(0, 0, 128, 20); 
    QBrush brush(blue);
    item->setBackground(brush);

    //Restore background after 1000ms
    QTimer::singleShot(1000, [item, this]() mutable {
        item->setBackground(Qt::transparent);     //<-need some advice here
    });
}
Run Code Online (Sandbox Code Playgroud)

c++ lambda segmentation-fault

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

C#中的ParseExact异常

我这样做:

DateTime.ParseExact(timestamp, "yyyy-MM-ddTHH:mm:ss.fffZ"
                , CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

我收到timestamp这样的效果很好:"2016-05-19T08:16:195Z" 但有时候我会收到这个:"2016-05-19T08:16:19Z"然后就ParseExact失败了.如何更新格式以包含此案例?

c# datetime

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

Application Server等效于Windows

我有一个关于如何编写Windows服务器端应用程序的问题.

我们现在有一个系统,其客户端基于.NET 4.0,服务器端应用程序在Linux上的jboss上运行.服务器应用程序与Oracle DB进行通信.

我现在想将服务器端移动到Windows和DB移动到SQL服务器.服务器应用程序也应该用.NET编写.但是,Windows上似乎没有Application Server等效项.如何在Windows上正常编写和部署服务器应用程序?

非常感谢

.net c#

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

如何调用销毁功能?

#include<iostream>
using namespace std;
class Monster {

  public: 
  Monster() {cout << "with out argument. \n";}
  Monster(int sz) { cout << "Monster created.\n"; }
  ~Monster() { cout << "Monster destroyed.\n"; }

  int GetSize() { return itsSize; }
  void SetSize(int str) { itsSize = str; }

private:
  int itsSize;
};

int main()
{
  Monster *m;
  m =new Monster[3];
  for(int i = 0; i < 3; i++)
     m[i] = i; // constructor with argument is getting called for each elements after which why …
Run Code Online (Sandbox Code Playgroud)

c++ constructor destructor

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

短划线之间的值不匹配

为什么我不能匹配破折号之间的值?例如:2016-05-20,当我尝试使用类似功能匹配数字5时,即使05也没有结果,但如果我将匹配2016年和20,则会产生结果.我如何在日期中匹配月份?

    public IEnumerable<NCABal> FindByNCABalDate(Int32 Month)
    {
        var query = @"SELECT * FROM [dbo].[NCA_Balance] WHERE NCABalDate LIKE '%"+ @Month +"%'";
        return this._db.Query<NCABal>(query).ToList();
    }
Run Code Online (Sandbox Code Playgroud)

当我输入5或05时,不会显示任何结果.

c# sql-server

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