小编Jon*_*ock的帖子

文本(blob)比varchar/nvarchar的效率低多少?

我们为一个相当大的项目做了很多大而简单的形式(大约有600个用户全天使用它 - 这对我来说至少很重要;-)).

这些表格有很多问题/答案类型的部分,因此某些人输入句子很自然,而其他人则输入一本小说. 真正对某些字段设置字符限制有多大益处?

(如有必要/可能,请包括参考或引用 - 谢谢!)

sql varchar text

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

我如何将Ripper的AST重新编译回Ruby代码?

Ripper是Ruby 1.9附带的解析库.它将Ruby代码转换为AST,如下所示:

pp Ripper.sexp("def foo; yield :a; return 1 end")

#=>

[:program,
 [[:def,
   [:@ident, "foo", [1, 4]],
   [:params, nil, nil, nil, nil, nil],
   [:bodystmt,
    [[:yield,
      [:args_add_block,
       [[:symbol_literal, [:symbol, [:@ident, "a", [1, 16]]]]],
       false]],
     [:return, [:args_add_block, [[:@int, "1", [1, 26]]], false]]],
    nil,
    nil,
    nil]]]]
Run Code Online (Sandbox Code Playgroud)

是否有一个库可以使用这个AST并将其转换回Ruby代码?

ruby_parser和ruby2ruby曾经这样做,但我想使用Ripper作为我的解析器.(Ruby 1.9甚至可能附带这样的库,但是我甚至在Ripper本身也很难找到文档)

ruby abstract-syntax-tree ruby-ripper

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

为什么整个计划优化现在不再普遍?

主要问题:为什么一般甚至专业的整体计划优化者都不是我们日常生活的一部分?

我开始思考这个阅读SuperCompilers后,LLC的白皮书,其中讨论了他们的"supercompiling"或方法metacompiling程序的源(通常情况下)实现了更快的版本,做相同的功能原来的程序.基本上,他们逐步执行程序并重新编译为相同的目标语言.通过这样做,自然优化发生; 例如,如果输入程序经常使用100个项目的数组,则通用二进制搜索功能可能专门用于二进制搜索100个项目的数组.

部分求值是一个或许更窄的类型整个程序优化,其中该程序的源减少/同时留下未知的输入开在运行时评估基于一些组固定输入的评估的.例如,如果给定y = 5,则一般函数x ^ y可以减少到x ^ 5或者可能是(x*x)*(x*x)*x.

(我为这两种技术的粗略描述道歉)

从历史上看整个程序的优化,如上述两个就太内存密集型执行,而是用我们的机器已经的内存(或者使用类似云)演出,为什么没有我们看到许多开源部分评估和如春吗?我见过一些,但我认为这将成为我们工具链的常规部分.

  • 是恐惧(程序员担心他们的代码转换引入错误)?
  • 它是不值得的(即对于Web应用程序而言,瓶颈是I/O,这种优化似乎可以节省CPU时间)?
  • 这种软件难以写吗?
  • 或者,我对此的看法是错的吗?

language-agnostic optimization

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

使用C#中的反射将func转换为谓词

基本上,我试图做这个,但我不知道T将是什么,所以我使用的反思和表达式树构建东西.

// Input (I don't know about "Book")
Type itemType = typeof(Book);

// Actual Code
// Build up func p => p.AuthorName == "Jon Skeet"
ParameterExpression predParam = Expression.Parameter(itemType, "p");
Expression left = Expression.Field(predParam, itemType.GetField("AuthorName"));
Expression right = Expression.Constant("Jon Skeet", typeof(string));
Expression equality = Expression.Equal(left, right);
Delegate myDelegate = Expression.Lambda(equality, new ParameterExpression[] { predParam }).Compile(); // Not sure if I need this

// Build up predicate type (Predicate<Book>)
Type genericPredicateType = typeof(Predicate<>);
Type constructedPredicateType = genericPredicateType.MakeGenericType(new Type[] { …
Run Code Online (Sandbox Code Playgroud)

c# reflection predicate expression-trees

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

哪种情况在Rails中多线程

Rails现在可以使多线程应用程序成为可能,但它听起来并不适用于所有情况(例如,如果你使用的是Mongrel,它听起来根本不会影响你).

你什么时候可以多线程你的Rails应用程序?

本文提供了有关多线程陷阱的更多信息.

multithreading ruby-on-rails

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

List Clear()方法是否会破坏子项[C#.NET]?

如果我创建一个列表的递归列表:

class myList
{
  List<myList> childLists;
  List<string> things;

  //...
}

List<myList> tempList = new List<myList>();
Run Code Online (Sandbox Code Playgroud)

然后调用tempList.Clear(),它会破坏内存中的所有childLists,还是应该创建一个递归方法来清除所有的childLists呢?

.net c# recursion memory-management

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

在开发服务器上查看实时数据的最佳实践?

假设:实时/生产网络应用程序可以抑制向最终用户显示的错误.

假设你的技术支持团队希望看到实时数据,而是通过应用程序的开发方的眼睛(也许你想看看有什么错误发生,或者想看看,当你有使用固定一个问题的最终用户的数据).

现在我们有一个数据库服务于dev和live box(不是我的想法 - 我知道它很糟糕).

想法?

编辑:实施建议的最佳/便捷工具?

database production

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

保存 - .NET中的操作顺序(C#)

我的代码隐藏中有一个btnSave_Click()函数.如果用户单击我创建的保存按钮(图像),则会调用此函数:

protected void btnSave_Click(object sender, EventArgs e)
{
this.saveForm();
txtMessages.Text = "Save Complete";
}
Run Code Online (Sandbox Code Playgroud)

saveForm()函数显然保存了表单(通过存储过程).在显示"保存完成"消息之前,.NET是否会等到该保存完成,或者我还应该做些什么来让用户知道保存何时完成.

什么是这类事物的最佳教程(即微调器和保存完成时的通知)?

.net save

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

您如何构建您的网站内容?

你试图保持简单,并有一个根文件夹,然后1个文件夹的图像,JavaScript,闪存等?你通常把你的文件夹称为什么?你给你的文件命名约定?

web-architecture

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

通过添加未使用的WHERE条件来查询运行时间

我遇到了一个有趣的障碍(至少对我有趣).下面是我的查询的一般概念.假设@AuthorType是存储过程的输入,并且每个地方都有各种专门条件我已经发表评论.

SELECT *
FROM TBooks
WHERE
(--...SOME CONDITIONS)
OR
(@AuthorType = 1 AND --...DIFFERENT CONDITIONS)
OR
(@AuthorType = 2 AND --...STILL MORE CONDITIONS)
Run Code Online (Sandbox Code Playgroud)

对我来说有趣的是,如果我使用@AuthorType = 0执行此SP,它的运行速度比删除最后两组条件(为@AuthorType的特殊值添加条件的条件)要慢.

SQL Server不应该在运行时意识到永远不会满足这些条件并完全忽略它们吗?我所经历的差异并不小; 它大约是查询长度的两倍(1-2秒到3-5秒).

我希望SQL Server能够为我做太多优化吗?我是否真的需要为特殊条件设置3个独立的SP?

sql sql-server where-clause

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