小编Ree*_*ore的帖子

Func vs. Action vs. Predicate

通过实例和它们的使用,有人可以帮助我理解:

  1. 我们什么时候需要Func委托?
  2. 我们什么时候需要行动委托?
  3. 我们什么时候需要Predicates委托?

c# delegates

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

linq to sql Distinct和orderby

var result = table1.Join(table2, o => o.ProgramID, t => t.ProgramID, (o, t) => new { o.ProgramID, t.Program })
         .OrderBy(t => t.Program)
         .Distinct();
Run Code Online (Sandbox Code Playgroud)

上面的linq语句实际上返回了正确的结果,但是他生成的sql(下面)并不是那么简单

SELECT [t2].[ProgramID], [t2].[Program]
FROM (
    SELECT DISTINCT [t0].[ProgramID], [t1].[Program]
    FROM [table1] AS [t0]
    INNER JOIN [table2] AS [t1] ON [t0].[ProgramID] = [t1].[ProgramID]
    ) AS [t2]
ORDER BY [t2].[Program]
Run Code Online (Sandbox Code Playgroud)

我本以为下面的sql更清晰,但我不确定实现它的linq语句.

select distinct 
    o.ProgramID, 
    t.Program 
from 
    table1 0 
    inner join table2 t on t.ProgramID = o.ProgramID 
order by t.Program
Run Code Online (Sandbox Code Playgroud)

提前致谢

c# linq-to-sql

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

如何获取当前的Function对象引用

itself.bind = function (object, method, callback, context, args, includeEventArgs) {

  var handler, originalArgLen;

  args = args.slice(0, arguments.length);
  originalArgLen = args.length;
  context = context || null;

  handler = function () {
     if (includeEventArgs) {
        for (var i = arguments.length - 1; i >= 0; i--) {
           args.push(arguments[i]);
        }
     }

     callback.apply(context, args);
  };

  handler.userArgsLength = originalArgLength; 

  object[method] = handler;
};
Run Code Online (Sandbox Code Playgroud)

假设我打电话

TOOL.bind(canvas, "onmouseover",  doDrawFunc, [currentDrawingTool], true); 
Run Code Online (Sandbox Code Playgroud)

我希望能够userArgsLength从内部访问doDrawFunc.

javascript reference function

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

将LLVM JIT代码链接到外部C++函数

我正在编写一个LLVM脚本引擎,JIT用自定义语言编写脚本代码.我的问题是我无法调用外部函数(即使C99 erf()函数失败).

例如,如果我extern"C"erf函数,

extern "C" double erft(double x){
return erf(x);
}
Run Code Online (Sandbox Code Playgroud)

并创建一个外部链接功能

std::vector<const Type*> Double1(1,Type::getDoubleTy(getGlobalContext()));
FunctionType *FT = FunctionType::get(Type::getDoubleTy(getGlobalContext()),Double1,false);
Function *erft = Function::Create(FT,Function::ExternalLinkage,"erft",TheModule);
Run Code Online (Sandbox Code Playgroud)

使用erft(0.0)运行脚本时出现以下错误消息:

LLVM错误:程序使用的外部功能'erft'无法解决!

手动执行映射,

void ExecutionEngine::addGlobalMapping( const GlobalValue *  erfF, void *  erft); 
Run Code Online (Sandbox Code Playgroud)

会得到以下错误:

在类之外的`void llvm :: ExecutionEngine :: addGlobalMapping(const llvm :: GlobalValue*,void*)'的声明不是定义

显然我做错了.任何帮助将非常感激

linker jit llvm

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

PHP:函数'count'的复杂性[即O(1),O(n)]是多少?

count()数组函数的Big-O时间复杂度是多少?

$x = array(1,2,3);
echo count($x); // how many operation does it takes to count the elements 
                // of the array? is it 3, or is it 1
Run Code Online (Sandbox Code Playgroud)

php

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

Vim的Ruby插件有问题

我刚刚安装了Vim,当我在ruby文件中打开时,我得到以下错误:

Error detected while processing C:\Program files (x86)\Vim\vimfiles\ftplugin\ruby.vim
line: 76
Encoding::ConverterNotFoundError: code converter not found (UTF-16LE to ASCII-8bit)
line: 93

E121 :Undefined varaible: s:ruby_path
E15: Invalid expression: s:ruby_path
line: 76

NameError: uninitialized constant Gem::Quickloader
line: 93
Run Code Online (Sandbox Code Playgroud)

我安装了Ruby 192,即使我更新了ruby vim文件,也会收到此错误.

如果它有帮助,这些是错误所指的两行:

line 76:  ruby VIM::command( 'let s:ruby_path = "%s"' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )

line 93: let &l:path = s:ruby_path
Run Code Online (Sandbox Code Playgroud)

ruby vim plugins

12
推荐指数
3
解决办法
4269
查看次数

如何通过apache解决高CPU负载?(ubuntu的+ EC2)

我在Amazon EC2中设置了一个实例,一个运行apache2,php5和mysql的ubuntu 10.04服务器.

使用该系统的用户不到10人,服务器获得20%,30%,40%的CPU负载.

使用top我在第一行中看到:

11121 www-data 20 0 71940 20m 11m S | 22.6 | 1.2 | 0:00.68 apache2
10108 www-data 20 0 72196 22m 12m S | 21.9 | 1.3 | 1:15.81 apache2
11122 www-data 20 0 71936 20m 11m S | 7.3 | 1.2 | 0:00.68 apache2
10111 www-data 20 0 72196 22m 12m S | 1.7 | 1.3 | 1:16.43 apache2

这4行中的CPU总和是53,5.

我怎样才能看到更详细的流程?
我怎样才能看看脚本运行,需要花费的时间,每个人消耗的处理器的数量?

谢谢.

apache cpu ubuntu apache2

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

Javascript是否使用本地计算机时间?

这可能是一个愚蠢的问题,我99%肯定它,但我要肯定的...没有JS使用本地计算机的时间?

javascript time

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

为新注入的类设置类路径

上下文:一个新类说Bar,在运行时注入JVM.这个类属于com.foo这个包.对此类的引用将注入到属于同一包的另一个类中.每次加载时,新类可能都有不同的名称 - 因此不能将其指定为任何配置文件的一部分 - 例如,不能在build.xml中指定它作为jar文件的一部分包含在内.

问题:在类加载时,jvm会抛出一个错误 - java结果1.尽管我无法确定根本原因,但看起来类加载器找不到新注入的类.服务器以详细模式运行,该模式显示JVM加载的类列表,并且可以看到这个新注入的类已加载.

问题:新注入的类是否已经在类路径中?如果没有怎么设置呢?

[编辑] - 在问题中添加一些代码.

代码段 - 1:下面的代码段是从PreMain方法调用的 - Premain方法将由JVM代理调用,并将在运行时注入检测引用.Premain方法从一个方法中返回一个新类--Bar - 和一个对这个新类的引用 - returnsABool() - 在一个现有的类中 - ExistingClass.

public static void premain(String agentArgs, Instrumentation inst) {

        // 1. Create and load the new class - Bar
        String className = "Bar";
        byte [] b = getBytesForNewClass();
        //override classDefine (as it is protected) and define the class.
        Class clazz = null;
        try {
          ClassLoader loader = ClassLoader.getSystemClassLoader();
          Class cls = Class.forName("java.lang.ClassLoader");
          java.lang.reflect.Method method =
            cls.getDeclaredMethod("defineClass", …
Run Code Online (Sandbox Code Playgroud)

java classpath code-injection

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

为什么不是方法toLowerCase(); 在我的代码中工作?

import java.util.Scanner;

public class Test
{

    public static void main(String[] args)
    {
        char[] sArray;

        Scanner scan = new Scanner(System.in);

        System.out.print("Enter a Palindrome : ");

        String s = scan.nextLine();


        sArray = new char[s.length()];

        for(int i = 0; i < s.length(); i++)
        {
            s.toLowerCase();
            sArray[i] = s.charAt(i);
            System.out.print(sArray[i]);
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

java

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