小编kei*_*yip的帖子

如何在NHibernate中查询每个组中的第一个条目

以下在NHibernate中使用LINQ的代码返回的结果与内存中LINQ和EF LINQ不同。在NHibernate中执行此操作的正确方法是什么?QueryOver如果LINQ版本确实已损坏,则可以使用。

using (var session = factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
    for (int i = 0; i < 10; ++i)
    {
        session.Save(new A()
        {
            X = i % 2,
            Y = i / 2,
        });
    }
    transaction.Commit();
}
using (var session = factory.OpenSession())
using (var transaction = session.BeginTransaction())
{
    //=====================================
    var expected = session.Query<A>()
        .ToList() // <-- copy to memory
        .GroupBy(a => a.X)
        .Select(g => g.OrderBy(y => y.Y).First())
        .ToList();
    Console.WriteLine(string.Join(" ", expected.Select(a => a.Id)));
    //=====================================
    var …
Run Code Online (Sandbox Code Playgroud)

c# linq nhibernate

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

c/c ++优化调用函数中的常量变量

只有在使用-Os,-O1和-O2时,C/C++编译器才能使用常量参数(编译时已知)优化单层函数.他们没有优化所有层.只有-O3可以做到这一点.gcc是WinAVR 4.3.3,它不支持属性"optimize".

void inner(double value)
{
    //operations using value
    //...
}

void outer(double value)
{
    //few operations using value
    //...
    inner(value);
}

int main()
{
    inner(1); //optimize
    outer(1); //only optimize by using -O3
}
Run Code Online (Sandbox Code Playgroud)

除以下之外,有哪些可能的解决方案?

  1. -O3保存程序或文件(误用会炸掉大小)
  2. 属性优化-O3为函数(4.3.3不支持)
  3. 宏(容易出错)

更新:

//inner function
static inline void _delay_us(double __us) __attribute__((always_inline));
//outer function
void f(double);
inline f1(double);
static inline f2(double);
static f3(double);
Run Code Online (Sandbox Code Playgroud)

f1已经过优化,但发出警告'_delay_us'是静态的,但在内联函数'f1'中使用,由于静态函数问题,它不是静态的.其他人没有优化.


解:

static inline void outer(double) __attribute__((always_inline));
Run Code Online (Sandbox Code Playgroud)

内联是关键.我的外部函数对于内联来说太大了.属性always_inline强制函数内联.这允许编译器以比编写优化更少的编译成本来优化函数.-O3足够聪明,可以进行优化但不是-Os.-Os可能需要一些编译器选项.(关键字static是必需的,因为内部函数也是静态内联的.)

c c++ optimization avr constants

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

如何在iOS上使用嵌入式专用框架和应用程序中的静态库

在私有框架,应用程序和扩展中使用静态库中的类的正确方法是什么?我的示例项目可以在这里找到https://github.com/keithyipkw/framework

在第二次提交中,SDK与.a链接.运行应用程序创建了错误

Ld /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator/FrameworkApp.app/FrameworkApp normal x86_64
    cd /Users/keithyip/Documents/Workspace/FrameworkApp
    export IPHONEOS_DEPLOYMENT_TARGET=8.4
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.4.sdk -L/Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator -F/Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator -filelist /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Intermediates/FrameworkApp.build/Debug-iphonesimulator/FrameworkApp.build/Objects-normal/x86_64/FrameworkApp.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -Xlinker -no_implicit_dylibs -mios-simulator-version-min=8.4 /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator/SDK.framework/SDK -Xlinker -dependency_info -Xlinker /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Intermediates/FrameworkApp.build/Debug-iphonesimulator/FrameworkApp.build/Objects-normal/x86_64/FrameworkApp_dependency_info.dat -o /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator/FrameworkApp.app/FrameworkApp

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_GAI", referenced from:
      objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

该符号在.a中是全局的,但在SDK中是本地的

$ nm -a /Users/keithyip/Library/Developer/Xcode/DerivedData/FrameworkApp-bpzqozighjdtncegosucvgelzagc/Build/Products/Debug-iphonesimulator/SDK.framework/SDK | …
Run Code Online (Sandbox Code Playgroud)

xcode linker frameworks objective-c ios

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

Linux套接字缓冲数据大小

是否有任何简单的函数来检查缓冲但未读取的数据量?FD_ISSET仅指示缓冲区中是否存在数据.有可能不在程序中创建第二个缓冲区来更好地控制缓冲区吗?

sockets linux buffer

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

标签 统计

avr ×1

buffer ×1

c ×1

c# ×1

c++ ×1

constants ×1

frameworks ×1

ios ×1

linker ×1

linq ×1

linux ×1

nhibernate ×1

objective-c ×1

optimization ×1

sockets ×1

xcode ×1