小编Mat*_*hew的帖子

在javascript中查找内存使用的工具?

在Chrome任务管理器中,我注意到我的应用程序正在使用大约75,000k内存,这似乎有点高.是否有一个工具可以显示内存中的对象,以便我可以识别出我滥用对象的位置,甚至可能泄漏内存?

javascript debugging memory-leaks

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

CoffeeScript范围问题

我在这做错了什么?我正在使用fat arrows =>作为我的回调,但是当代码到达cb.onEndElement并调用@returner时,我得到一个空对象异常.那么@returner为什么不存在呢?

class Parser
    constructor: () ->
        @returner = (data) ->

    searchParser: new xml.SaxParser (cb) =>
        cb.onStartElementNS (elem, attrs, prefix, url, ns) =>
            if elem is "results" then @results = []
            else if elem is "title" then @curr = "title"
            else @curr = "none"
        cb.onCdata (cdata) =>
            if @curr is "title" then @book.title = cdata
        cb.onEndElementNS (elem, prefix, url) =>
            @results.push @book if elem is "book"
        cb.onEndDocument =>
            @returner @results

    search: (str, callback) ->
        @returner = callback
        @searchParser.parseString str …
Run Code Online (Sandbox Code Playgroud)

javascript coffeescript

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

popstate何时开火?

我按照规范将所有代码都放在$(document).ready中,但是我也应该在代码的结尾处放置我的“ popstate”监听器吗?还是有关系吗?

javascript html5

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

在AppDomain中加载代码时出现令人讨厌的内存泄漏

我对我正在处理的一些代码有一个不寻常的要求.我正在使用不可靠的第三方库进行一些条形码扫描(它在运行太多次后停止工作).为了解决这个问题,我决定在单独的AppDomain中完成工作,然后在完成后卸载AppDomain.这是我正在做的事情的简单但准确的图片:

string domainID = Guid.NewGuid().ToString();
AppDomainSetup setup = new AppDomainSetup();
AppDomain domain = AppDomain.CreateDomain(domainID, null, setup);

string result = null;
try
{
    domain.SetData("stream", stream);
    domain.DoCallBack(ScanningContext.DoWork);

    result = domain.GetData("result") as string;
}
finally
{
    AppDomain.Unload(domain);
}

return result;

public static void DoWork()
{
    Stream s = AppDomain.CurrentDomain.GetData("stream") as Stream;
    ObjectHandle handle = AppDomain.CurrentDomain.CreateInstance("Scanning",
        "Scanner");

    Scanning.Scanner scanner = (Scanning.Scanner)handle.Unwrap();
    Scanning.Result[] results = scanner.Scan(s);

    AppDomain.CurrentDomain.SetData("result", results[0].Text);
}
Run Code Online (Sandbox Code Playgroud)

"Scanner"是我正在使用的库周围的包装类.它位于"扫描"组件中; 一个单独的项目,仅用于此目的.

ScanningContext.DoWork是一个静态方法,位于我的服务程序集中.

我对这种方法的问题是在某些地方存在内存泄漏.内存不断增长和增长(当然,当调用此代码时),直到抛出OutOfMemoryExceptions.

我无法找到泄漏的地方.我的所有溪流都被处理掉了.我的所有字节数组都被清空了.我正在清理列表,过去对我有用的一切.我大约90%确信泄漏与这个AppDomain的东西有关.这是我第一次使用它,所以我可能做错了.

我对AppDomains之外的另一种方法持开放态度.我确实需要能够从"扫描仪"类返回结果,因此产生一个过程不是一种选择.

c# appdomain

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

从C运行luajit对象文件

来自文档:http://luajit.org/running.html

luajit -b test.lua test.obj                 # Generate object file
# Link test.obj with your application and load it with require("test")
Run Code Online (Sandbox Code Playgroud)

但是没有解释如何做这些事情.我猜他们假设任何使用Lua的人也是C程序员,而不是我的情况!我可以得到一些帮助吗?以GCC为例.

除了C字节数组头之外,我还想做同样的事情.我也找不到相关文档.

luajit -bt h -n test test.lua test.h
Run Code Online (Sandbox Code Playgroud)

这会创建头文件,但我不知道如何从C运行它.谢谢.

c lua luajit

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

C#在命中属性之前运行一段代码

我有一个方法,我想始终在属性的get访问器之前运行.如果不在get {}中手动运行方法,这是否可行?这是我想要工作的一个例子.

    private string _someString;
    private string _someOtherString;

    public string SomeString
    {
        get { return _someString; }
    }

    public string SomeOtherString
    {
        get { return _someOtherString; }
    }

    public void AlwaysRun()
    {
        // Code to always run here.
    }
Run Code Online (Sandbox Code Playgroud)

c#

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

在父退出后保持子进程处于活动状态

我正在为Windows服务编写一个autoupdater.这就是我希望它工作的方式(如果有更好的解决方案,请告诉我)

1) The service launches a child Process (the updater).
2) The child stops the parent service (I'm using sc.exe).
3) The child applies the updated .exe and .dll files for the parent.
4) The child starts the parent service.
Run Code Online (Sandbox Code Playgroud)

我坚持#2,因为当我停止父服务时,子进程被杀死了.如何在C#中启动一个不是孩子的新流程,它本身就存在?

c#

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

F#中的记录列表?

你如何使用F#中的记录列表?您如何将其作为函数中的参数传递?我想做这样的事情:

type Car = {
  Color : string;
  Make : string;
  }

let getRedCars cars =
  List.filter (fun x -> x.Color = "red") cars;

let car1 = { Color = "red"; Make = "Toyota"; }
let car2 = { Color = "black"; Make = "Ford"; }
let cars = [ car1; car2; ]
Run Code Online (Sandbox Code Playgroud)

我需要一种方法来告诉我的功能"汽车"是汽车记录列表.

f# records functional-programming list

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

ASP MVC路由不执行任何操作

我想省略url中的操作,因为我认为这不是一种轻松的方法。默认路由应为:

"{controller}/{id}"
Run Code Online (Sandbox Code Playgroud)

然后调用与所使用的HTTP方法相对应的操作。例如,我正在这样装饰一个PUT动作:

[HttpPut]
public ActionResult Change()
{
    return View();
}
Run Code Online (Sandbox Code Playgroud)

但是,当处理此问题时,我得到了404。所以我做错了什么,以前有人尝试过这种方法吗?

我正在使用MVC4 Beta。

这是我设置路线的全部工作:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{id}",
        defaults: new { controller = "Home", action = "Index", id = RouteParameter.Optional }
    );
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

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

Unity选择带参数的构造函数

我正在注册这样的类型:

IUnityContainer container = new UnityContainer()
                .RegisterType<IActiveDirectoryUser, ADUser>();
Run Code Online (Sandbox Code Playgroud)

ADUser类包含2个构造函数,一个无参数,一个具有单个参数.当解析器解决它时,它会选择带参数的解析器.如何告诉它使用无参数控制器?

c# dependency-injection unity-container

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