现在我有一个日志解析器读取515mb的纯文本文件(过去4年中每天的文件).我的代码目前如下:http://gist.github.com/12978.我已经使用了psyco(如代码中所示),我也正在编译它并使用编译版本.它每0.3秒做约100行.该机是标准的15"MacBook Pro(2.4ghz C2D,2GB RAM)
是否有可能更快或者是对语言/数据库的限制?
假设我有一个整数列表,其中每个元素都是1到20之间的数字.(这不是我想要排序的.)
现在,我有一个"操作"数组,其中每个操作:
编辑:每个操作的每个添加,删除和阻止中都可以有零个或多个数字,并且每个组的每个数字在某些操作中可以出现零次或多次.对于任何给定的操作,再添和移除了是不相交的,预防和移除了不相交,但再添和防止可能重叠.
我想对操作数组进行排序,以便每个操作:
如果存在循环依赖关系,则操作链应删除尽可能多的数字,并通知我它无法删除所有数字.
这种算法的名称/实现是否优于我下面的算法?
添加8/23:赏金用于考虑OpCodes(结构集)和InstructionSemantics(枚举中的位标志集)的排序要求.
在8月23日晚些时候添加:我通过启发式预先对源数组进行排序,使性能提高了89:1.有关详情,请参阅我当前的答案
namespace Pimp.Vmx.Compiler.Transforms
{
using System;
using System.Collections.Generic;
using System.Reflection.Emit;
internal interface ITransform
{
IEnumerable<OpCode> RemovedOpCodes { get; }
IEnumerable<OpCode> InsertedOpCodes { …Run Code Online (Sandbox Code Playgroud) LINQ到目前为止一直非常优雅,但是为了执行基本的m2m查询,它提供了我无法立即看到的解决方案.
更糟糕的是,虽然它适用于任何其他表关系,但LINQ并没有给我一个关于我的m2m表的类结构的关联.
所以我可以做的事情
artwork.artists.where(...)
//or
artist.Artworks.add(artwork)
Run Code Online (Sandbox Code Playgroud)
但我不能这样做
artwork.artowrks_subjects.tagSubjects.where(...)
//or
tagSubject.artworks_subjects.add(artwork)
Run Code Online (Sandbox Code Playgroud)
替代文字http://img299.imageshack.us/img299/257/20090902122107.png
是否有解决此限制的常见模式?
我希望有人可以告诉我为什么java有java.lang.reflect.Type,当一切都已经继承Object?
有人可以举个例子说明我需要使用a Type而不是a Object吗?
我对如何在ANTLR4中捕获带引号的字符串感到有点困惑.
目前,这个词法分析器规则并没有像我期望的那样标记.
示例字符串是"=\"".我已经尝试了很多不同的方法来捕捉这个,但我对我正在做的不正确感到茫然.我非常感谢对此最佳实践的一些见解.非常感谢!
ESCAPED_QUOTE : '\"';
QUOTED_STRING : '"' ( ESCAPED_QUOTE | ~('\n'|'\r') )*? '"';
Run Code Online (Sandbox Code Playgroud) 我有以下语法来解析应用于图形的一阶逻辑公式:
grammar Graph;
/*------------------------------------------------------------------
* PARSER RULES
*------------------------------------------------------------------*/
input
:
formula EOF
;
formula
:
TRUE
| FALSE
| formula AND formula
| formula OR formula
| quantifier formula
| ST condition
;
condition
:
atom EQUALS QUOTE? (assignment | atom) QUOTE?
;
quantifier
:
(FOREACH | EXISTS) variable IN domain
;
domain
:
(GRAPH_A | GRAPH_B)
;
atom
:
variable DOT property
;
variable
:
(nodev | edgev)
;
nodev
:
(NODE | NODE1)
;
edgev
:
(EDGE | …Run Code Online (Sandbox Code Playgroud) 目前我知道以下Dispatcher对象。
如果您有文本视图,则可以使用IWpfTextView.VisualElement.Dispatcher.
如果您的类是由 MEF 构造的(用[Export]您自己的代码标记而不是直接从您自己的代码构造),那么您可以使用 MEF 部分解析算法和构造发生在 UI 线程上的事实,允许使用Dispatcher.CurrentDispatcher. 例如:
[Export(typeof(ISomeInterface))]
public class MyClass : ISomeInterface {
private readonly Dispatcher _dispatcher;
public MyClass() {
_dispatcher = Dispatcher.CurrentDispatcher.
}
}
Run Code Online (Sandbox Code Playgroud)您可以Application.Current.Dispatcher从任何代码使用。
如果有的话,获得一个的推荐做法是Dispatcher什么?
我试图想出一种优雅的方法来处理一些生成的多项式.以下是我们将(专门)关注此问题的情况:
由于此特定代码示例生成x_1 .. x_n,我将解释它们是如何在代码中找到的.这些点均匀分布x_j = j * elementSize / order,在哪里n = order + 1.
我生成一个Func<double, double>来评估这个多项式¹.
private static Func<double, double> GeneratePsi(double elementSize, int order, int i)
{
if (order < 1)
throw new ArgumentOutOfRangeException("order", "order must be greater than 0.");
if (i < 0)
throw new ArgumentOutOfRangeException("i", "i cannot be less than zero.");
if (i > order)
throw new ArgumentException("i", "i …Run Code Online (Sandbox Code Playgroud) 使用 XText,是否有一种方法可以添加带有内容建议的文本,以匹配插入位置的格式(当前缩进)?
我现在应该做什么:
1)创建一个用于内容提案的模型
2)我通过以下方式获取内容提案字符串:
EObject myelement是可以插入到我的 Xtext 文档中的生成代码。
class MyContentProposalProvider extends AbstractContentProposalProvider
{
private void acceptProposal(
ContentAssistContext context,
ICompletionProposalAcceptor acceptor,
ElementContentProposal contentProposal,
EObject myElement) {
final String proposalString = context.getResource().getSerializer().serialize(myElement);
final String proposalDisplayCode = proposalString.replaceAll("(\\r|\\n)", "");
final ICompletionProposal completionProposal = createCompletionProposal(proposalString,
String.format("%s : %s", proposalDisplayCode, p.getDescription()), null,
context);
acceptor.accept(completionProposal);
}
}
Run Code Online (Sandbox Code Playgroud)
3) 在 Xtext 编辑器中选择一个提案。
4)压痕太远了。一切都向左走。
5)到目前为止,我认为解决这个问题的唯一方法是在提案后格式化整个文档;然而,这可能会产生不需要的副作用。
有什么方法可以保持上面生成的提案字符串的缩进与提案的上下文一致?(这意味着,保留首选项中的缩进设置,例如空格而不是制表符)。
我目前在C#中使用ANTLR4,但我遇到了一个问题,我不知道如何获取对象/类IParseTree.
我在C#中找到了这里的完全限定名称Antlr4.Runtime.Tree.IParseTree但是如何获取对象?
AntlrInputStream inputStream = new AntlrInputStream(sSpinTexte);
SpinParserLexer SpinLexer = new SpinParserLexer(inputStream);
CommonTokenStream commonTokenStream = new CommonTokenStream(SpinLexer);
SpinParserParser SpinParser = new SpinParserParser(commonTokenStream);
IParseTree tree = ?????
Run Code Online (Sandbox Code Playgroud)
你能帮忙吗?
c# ×3
java ×3
antlr ×2
antlr4 ×2
linq ×2
algebra ×1
algorithm ×1
dispatcher ×1
eclipse ×1
lexer ×1
linq-to-sql ×1
many-to-many ×1
math ×1
object ×1
parse-tree ×1
parsing ×1
postgresql ×1
python ×1
sorting ×1
types ×1
vsix ×1
xtext ×1